【问题标题】:What is the best way to use JavaScript modules on Server and Browser?在服务器和浏览器上使用 JavaScript 模块的最佳方式是什么?
【发布时间】:2011-09-13 03:10:59
【问题描述】:

我目前正在构建一个使用 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 中显示的想法,尽管它不起作用,因为我必须在我的模块中要求基础对象,这在浏览器上不起作用。

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

【问题讨论】:

  • 使用browserify打包node模块并处理依赖。至于架构看ExpressArchTest
  • @filaruina 也有同样的问题,browserify 和 requirejs 要么太复杂,要么使用了稍微不同的 api。我把 tiny-require.js 放在一起,这几乎是 node.js 对浏览器的要求。

标签: javascript node.js module


【解决方案1】:

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

RequireJS 是一个 JavaScript 文件和模块加载器。它针对 在浏览器中使用,但它可以在其他 JavaScript 环境中使用, 比如 Rhino 和 Node。

【讨论】:

  • 是的,我见过 RequireJS,但它的语法与 NodeJS 方法完全不同。我想我还是会使用它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-21
  • 2010-10-09
  • 2013-01-23
  • 2011-06-16
  • 2016-01-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多