Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在Rails应用程序中模块化javascript代码_Ruby On Rails_Commonjs - Fatal编程技术网

Ruby on rails 在Rails应用程序中模块化javascript代码

Ruby on rails 在Rails应用程序中模块化javascript代码,ruby-on-rails,commonjs,Ruby On Rails,Commonjs,我正在尝试将我们的rails web应用程序移植到ember.js(我们目前在服务器端渲染视图的大部分工作),我想知道如何实现javascript代码的完全模块化。到目前为止,我最喜欢的插件是Sprocket commonjs,它会自动为所有名为.module.js的文件创建commonjs模块。这将解决我们的大多数问题,但外部库除外,它仍然会在代码中声明全局变量 我能想到的唯一解决方案是为每个库创建common.js模块 例如:假设我希望能够将Ember.js作为Common.js模块导入。然

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

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

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

//= require ember

module.exports = Ember;
然后,我将ember_模块(以及其他模块包装器)导入应用程序并使用它们

//= require_tree vendor/modules

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

这个解决方案有点老套,但它会改进代码的模块化。是否有更好的方法来实现相同的结果?

ember.module.js
中,尝试使用
/=include-ember
而不是
require
require
指令只是将文件添加为依赖项;
include
指令将实际包含文件内容。(见附件)


否则您的解决方案应该可以工作:)

ember.module.js
中,尝试使用
/=include-ember
而不是
require
require
指令只是将文件添加为依赖项;
include
指令将实际包含文件内容。(见附件)

否则,您的解决方案应该有效:)