我一直在尋找答案在這裏,我相信這只是我的配置搞砸了。grunt-contrib-uglify輸出爲空
簡版: 我已經配置好了grunt。 grunt-contrib-concat WORKS。 grunt-contrib-uglify聲明它工作但輸出一個空文件。
龍版本: 項目結構是:
/projectRoot
->/dev
->/js
/foo.js
/bar.js
->/dist
->/js
我想借此foo.js和bar.js並將其輸出到名爲「app.js」的/距離/ JS目錄中的文件。
這裏是我的配置:
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
concat: {
options:{
separator: ';'
},
dist:{
src:["js/foo.js", "js/barjs"],
dest:"../prod/js/app.js"
}
},
uglify:{
dist:{
files:{
"../prod/js/app.min.js":["js/foo.js", "js/bar.js"]
}
}
}
});
/**
* Set up tasks
* @type {string[]}
*/
var taskList = [
"grunt-contrib-concat",
"grunt-contrib-uglify"
];
for(var task in taskList){
grunt.loadNpmTasks(taskList[task]);
}
grunt.registerTask('default', ['concat']);
grunt.registerTask('dist', ['concat','uglify:dist']);
};
是的,咕嚕安裝在我的dev目錄中。
當我運行
grunt dist
我得到以下控制檯輸出:
Running "concat:dist" (concat) task
File ../prod/js/app.js created.
Running "uglify:dist" (uglify) task
File js/app.min.js created: 319 B → 0 B
Done, without errors.
Process finished with exit code 0
最後,它結束了創建文件/projectRoot/prod/js/app.min。 js
...但它是空的。
任何想法我做錯了什麼?此語法完全遵循自述文件和我可以找到的任何其他文檔中的內容。 concat任務工作得很好。
任何幫助,將不勝感激。 謝謝!
--EDIT-- 我更新了Grunt,使其在projectRoot中生存,但輸出沒有差異。
==============
UPDATE
我發現爲什麼它輸出一個空文件的原因。顯然,自我調用的匿名函數被「縮小」了,或者至少在這種情況下是這樣。這可能是因爲這裏沒有活動代碼。我將進一步研究這一點。我認爲實際上做什麼的功能,引用全局變量等等仍然存在。
==============
最後更新
解決的問題。即使有選項來縮小所有代碼,它仍然會刪除所有未引用的變量等。我的測試文件中的內容未被使用。如果我添加對所述功能的引用,那麼它們顯示出來。
希望這有助於某人。
你的配置和控制檯輸出都似乎說uglify會將新文件放在與源(在/ dev/js)相同的目錄中。但是,您說該文件是在/ prod/js樹中創建的。這裏有錯別字嗎? –
嗯,在我發佈之前,我已經改變了最終的輸出目錄。現在更新。 – dudewad
在你的'uglify'設置中你提供了路徑「jas/foo.js」還是「dev/jas/foo.js」? –