2016-12-02 101 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