2016-12-02 105 views
0

我一直在使用requirejs,并且无法让优化工具工作。我想要做的就是将我的JavaScript文件优化为一个包含所有依赖关系的脚本文件。Requirejs优化器不编译

我所有的文件都在一个JS /文件夹中,我有一个子文件的供应商/

我有一个配置文件,它看起来像这样(config.js):

requirejs.config({ 

baseUrl: ".", 
out: "main-built.js", 
deps: ["main"], 

paths: { 
jquery: "vendor/jquery", // v.1.10.2 
bootstrap: "vendor/bootstrap", 
ajaxform: "vendor/ajaxform", 
skrollr: "vendor/skrollr", 
jqueryform:"vendor/jqueryform" 
}, 

shim: { 
bootstrap: { 
    deps: ["jquery"], 
    exports: "bootstrap", 
}, 

    ajaxform: { 
    deps: ["jquery"], 
    exports: "ajaxform", 
}, 
     jqueryform: { 
    deps: ["jquery"], 
    exports: "jqueryform", 
} 

} 
}); 

我有一个主要的Javascript文件(main.js),它看起来是这样的:

if (typeof jQuery === 'function') { 
define('jquery', function() { return jQuery; }); 
} 


define(["jquery","bootstrap", "ajaxform","skrollr"], 
function($, bootstrap, ajaxform, skrollr) { 

//have other code here 

}); 

我还创建了一个构建文件:

({ 
baseUrl: ".", 
paths: { 
jquery: "vendor/jquery", // v.1.10.2 
bootstrap: "vendor/bootstrap", 
ajaxform: "vendor/ajaxform", 
skrollr: "vendor/skrollr", 
jqueryform:"vendor/jqueryform" 
}, 
shim: { 
bootstrap: { 
    deps: ["jquery"], 
    exports: "bootstrap", 
}, 

    ajaxform: { 
    deps: ["jquery"], 
    exports: "ajaxform", 
}, 
     jqueryform: { 
    deps: ["jquery"], 
    exports: "jqueryform", 
} 

}, 
name: "main", 
out: "main-built.js" 
}) 

所有的build文件都是压缩main.js文件本身,并且不包含所有需要的文件。

我一直试图让这个工作和关闭几个星期,似乎无法得到它的权利,所以任何帮助将真正赞赏。 感谢

回答

0

尝试增加一个模块进入到您的构建文件,你的主要模块,如:

modules: [ 
    { name: 'main' } 
] 

你可以看到构建文件这里所有的选项:https://github.com/requirejs/r.js/blob/master/build/example.build.js

+0

感谢您的重播Blatt, 这似乎没有任何区别。 奇怪的是它输出skroller.js的注释: /*! skrollr 0.6.30(2015-08-12)|亚历山大Prinzhorn - https://github.com/Prinzhorn/skrollr |根据MIT许可条款免费使用*/ 但下面的代码似乎是自举的开始: 我检查了example.build.js的链接,但我看不到任何我在那里失踪。 任何想法? – aido14

+0

难道你的子文件夹是'供应商',但你使用'vendor'来引用你的构建文件中的文件夹吗? – blatt

+0

没有我的文件夹名称是供应商。我似乎可以得到它来编译jquery和bootstrap bu其他文件都没有,也是我在我的main.js中触发器(我没有包含在代码中) – aido14