Javascript requirejs-将多个文件合并为不依赖于requirejs的单个js文件
我正在编写包含大量代码的jQuery插件。因此,我决定分离代码,使其对我(开发人员)更模块化。为此,我使用require.js。Javascript requirejs-将多个文件合并为不依赖于requirejs的单个js文件,javascript,jquery,requirejs,require,minify,Javascript,Jquery,Requirejs,Require,Minify,我正在编写包含大量代码的jQuery插件。因此,我决定分离代码,使其对我(开发人员)更模块化。为此,我使用require.js。 现在我有6个js文件: utils.js base-row.jas a-row.js b-row.js my-table.js main.js 文件1到5定义了JavaScript“类”,它们之间有依赖关系。运行所有音乐会的“主要”类是my-table.js。main.js仅依赖于my-table.js,并从中创建插件: require([ 'my-table
现在我有6个js文件:
require([
'my-table'
], function(MyTable) {
jQuery.fn.myTable = function(options) {
var table = new MyTable(this, options);
this.data('myTable', table);
return this;
};
});
现在我想从这些文件创建一个大js文件,其中包含所有6个文件,没有任何依赖关系(除了用户应该引用的jQuery)。为此,我使用了r.js(),结果得到了一个依赖于require.js的大js文件(并包含对define和require的调用)。我遵循这一点:并使用almond.js来组合我的所有文件,使其不依赖于require.js。这很好。问题是为什么我需要所有的define和require方法调用和almond.js?为什么优化器不能像这样仅连接函数结果(如本问题中所述:):
(function() {
var utils = «function() {
....
return Utils;
}»();
var baseRow = «function(A) {
....
return BaseRow;
}»(utils);
....
....
var myTable = .....
//<--This is require call and therefore doesn't return a thing
(function(MyTable) {
jQuery.fn.myTable = function(options) {
var table = new MyTable(this, options);
this.data('myTable', table);
return this;
};
})(myTable);
})();
(函数(){
var utils=«函数(){
....
返回UTIL;
}»();
var baseRow=«函数(A){
....
返回基线;
}»(UTIL);
....
....
var myTable=。。。。。
// 优化器中的findnestededependencies选项的默认值为“false”,这意味着即使在优化脚本之后,仍可能存在需要模块加载程序的嵌套require
或define
调用。外部依赖关系也需要加载程序
但是,我同意,如果findnestedependencies设置为“true”,并且项目中没有外部依赖项,那么优化器应该能够消除对加载程序的需求。您可以只在文件中包含所需的文件。您可以通过getScript调用来实现这一点
$.getScript("my_lovely_script.js", function(){
//whatever you want here.
});