在服务器和浏览器上使用 JavaScript 模块的最佳方式是什么?

发布于 2024-12-04 06:41:00 字数 759 浏览 0 评论 0原文

我目前正在构建一个使用 NodeJS 的 JavaScript 项目,并且一些对象在客户端和服务器端之间共享。 我试图在节点上使用模块系统,但在浏览器上找不到节点模块的合适实现。 目前我的测试架构是这样的:

Framework.js (只是创建一个公共命名空间和整个框架应该知道的一些函数。它位于名为 Shared 的文件夹中)

var Framework = {};
exports.Framework = Framework;

Module.js (负责特定部分的框架的一部分)

var fw = require('../Shared/Module.js');
fw.Module = function() {};
exports.Framework = fw;

这些模块继续下去。 我尝试使用在网络上找到的简单的 common.js 实现,但它在模块创建的范围上存在一些错误。我也尝试了这篇文章 http://caolanmcmahon.com/posts/writing_for_node_and_the_browser 上显示的想法,尽管它没有不起作用,因为我必须在我的模块中需要基本对象,而这在浏览器上不起作用。

我应该如何构建这段代码,以便我可以组织我的代码,使其在不同文件上具有不同的模块,以便在服务器和浏览器中使用(其中一些)?

I'm currently building an JavaScript project that uses NodeJS and some objects are shared between client and server side.
I was trying to use the module system on node but I couldn't find a suitable implementation of the node modules on the browser.
Currently my test architecture is like this:

Framework.js (just creating a common namespace and some functions that the whole framework should know. It is on folder named Shared)

var Framework = {};
exports.Framework = Framework;

Module.js (Part of the framework responsible for a specific part)

var fw = require('../Shared/Module.js');
fw.Module = function() {};
exports.Framework = fw;

These modules go on and on.
I tried using a simple common.js implementation found on the web but it had some bugs on the scope created by the module. I also tried the idea shown on this post http://caolanmcmahon.com/posts/writing_for_node_and_the_browser although it doesn't work, since I have to require the base object in my modules which wouldn't work on the browser.

How should I structure this code in a way that I can organize my code having different modules on different files to use (some of them) in server and browser?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一世旳自豪 2024-12-11 06:41:00

有一些 JavaScript 模块库可以在浏览器和 Node.js 上运行。一个例子:RequireJS

RequireJS 是一个 JavaScript 文件和模块加载器。它针对以下情况进行了优化
在浏览器中使用,但也可以在其他 JavaScript 环境中使用,
比如 Rhino 和 Node。

There are JavaScript module libraries that both work on browsers and Node. One example: RequireJS:

RequireJS is a JavaScript file and module loader. It is optimized for
in-browser use, but it can be used in other JavaScript environments,
like Rhino and Node.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文