2014-06-11 75 views
3

我一直在尋找答案在這裏,我相信這只是我的配置搞砸了。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

我發現爲什麼它輸出一個空文件的原因。顯然,自我調用的匿名函數被「縮小」了,或者至少在這種情況下是這樣。這可能是因爲這裏沒有活動代碼。我將進一步研究這一點。我認爲實際上做什麼的功能,引用全局變量等等仍然存在。

==============

最後更新

解決的問題。即使有選項來縮小所有代碼,它仍然會刪除所有未引用的變量等。我的測試文件中的內容未被使用。如果我添加對所述功能的引用,那麼它們顯示出來。

希望這有助於某人。

+0

你的配置和控制檯輸出都似乎說uglify會將新文件放在與源(在/ dev/js)相同的目錄中。但是,您說該文件是在/ prod/js樹中創建的。這裏有錯別字嗎? –

+0

嗯,在我發佈之前,我已經改變了最終的輸出目錄。現在更新。 – dudewad

+0

在你的'uglify'設置中你提供了路徑「jas/foo.js」還是「dev/jas/foo.js」? –

回答

3

問題已解決。即使有選項來縮小所有代碼,它仍然會刪除所有未引用的變量等。我的測試文件中的內容未被使用。如果我添加對所述功能的引用,那麼它們顯示出來。由於沒有任何功能被引用,它們被刪除,並最終得到一個空文件。

希望這有助於某人。