我已经将RequireJS实现得很好,并且基于Grunt的构建过程通过r.js将所有JS文件应用程序优化到一个文件中,这也很好。我的所有应用程序文件都连接成一个大的JS文件,以实现高效的生产部署。 现在我有以下要求: 我需要为requirejs编写一个插件,它不会在构建过程中加载(不包括文件)到优化文件中,但需要按需提供: 我的代码中的含义我将:
var myObj = require("myplugIn!jsFile");
所以最后当这一行运行时,它将以2个选项运行:
我编写了以下插件,但无效:
define(function () {
"use strict";
return {
load : function (name, req, onload, config) {
// we go inside here we are running the application not in build process
if (!config.isBuild) {
req([name], function () {
onload(arguments[0]);
});
}
}
};
});
我在这里缺少什么。 谢谢你的推荐
答案 0 :(得分:2)
在构建配置中,您可以排除不想捆绑的文件。它们仍然会在需要时按需加载。你也可以这样做:
define(function (){
// module code...
if (condition){
require(['mymodule'], function () {
// execute when mymodule has loaded.
});
}
}):
这种方式只有在满足条件时才会加载mymodule
。而且只有一次,如果你在其他地方使用相同的模块依赖,它将返回加载的模块。
答案 1 :(得分:0)
我觉得更简单,如果帮助某人,我发布了解决方案,我创建了一个插件,在构建过程中没有返回任何内容,在运行时,返回所需的文件,希望帮助某人。
define(function () {
"use strict";
return {
load : function (name, req, onload, config) {
if (config.isBuild) {
onload(null);
} else {
req([name], function () {
onload(arguments[0]);
});
}
}
};
});