0

我正在尝试将我们的 Rails Web 应用程序移植到 ember.js(我们目前在服务器端完成大部分渲染视图的工作),我想知道如何实现 javascript 代码的完全模块化。到目前为止,我最喜欢的插件是 sprockets-commonjs,它会自动为所有名为 .module.js 的文件创建 commonjs 模块。这将解决我们的大部分问题,除了外部库,它仍然会在代码中声明全局变量。

我能想到的唯一解决方案是为每个库创建 common.js 模块。

例如:假设我希望能够将 Ember.js 作为 Common.js 模块导入。然后,我将创建一个名为 vendor/modules/ember.module.js 的文件,其中包含以下内容:

//= require ember

module.exports = Ember;

然后我会将 ember_module(连同其他模块包装器)导入应用程序并使用它们。

//= require_tree vendor/modules

var ember = require("vendor/modules/ember");

这个解决方案有点老套,但它会改进代码的模块化。有没有更好的方法来达到同样的效果?

4

1 回答 1

3

在您的ember.module.js中,尝试使用//= include ember而不是require. 该require指令只是将文件添加为依赖项;该include指令实际上将包含文件内容。(参见https://github.com/sstephenson/sprockets#sprockets-directives)。

否则你的解决方案应该工作:)

于 2012-11-14T19:51:59.990 回答