我必須在某處犯個錯誤,但在優化過程中不會寫入stdout。我試圖通過requirejs優化一個文件,但輸出沒有被縮小。根據documentation,UglifyJS應該縮小代碼。RequireJS:Uglification無法正常工作
無論如何,下面的代碼是微不足道的,但它隔離了這個問題。
的src/index.js:
require(['config'], function() {
require(['myMod'], function (myMod) {
console.log(myMod.x());
})
})
的src/myMod.js:
define(function() {
let myMod = {
x: 5
};
return myMod;
})
的src/config.js:
define(function() {
require.config({
baseUrl: 'src'
});
})
而這裏的一飲而盡任務是執行優化:
gulp.task('optimize', function (cb) {
let config = {
appDir: 'src',
dir: 'dist/src',
generateSourceMaps: true,
preserveLicenseComments: false,
removeCombined: true,
baseUrl: './',
modules: [{
name: 'index',
include: ['myMod']
}]
}
let success = function (buildResponse) { console.log(buildResponse); cb() },
error = function (err) { console.log(err); cb(err) }
rjs.optimize(config, success, error)
})
運行該任務後,dist/src/index.js包含其中的所有其他模塊。但是,它沒有被縮小,並且沒有變量被重命名。相反,就好像這些文件只是連接在一起,而已。有人可以告訴我(1)爲什麼它沒有被縮小? (2)是UglifyJS拋出一個錯誤?如果是這樣,當吞嚥任務正在運行時有沒有辦法看到它?
編輯這裏是RequireJS文檔的鏈接,它提到了在節點中使用優化器的問題,這是在上面提到的gulp任務中完成的。它位於「使用優化器作爲節點模塊」的底部。
http://requirejs.org/docs/node.html
非常感謝!我很尷尬地說,這不是我第一次犯這個錯誤:(希望它是最後一個,但! – Andrew