2014-07-07 58 views
2

yeoman生成的grunt腳本通過useminPrepare,concat和uglifyjs連接並縮小js文件。如何使grunt不會縮小某些js文件

這很好,但有一個我不希望它縮小的js腳本。我該如何在grunt文件中指定它?

+0

查看問題http://stackoverflow.com/questions/18453974/how-to-ignore-files-grunt-uglify – Ace

+0

@Ace是的,我看到了這個問題,它確實回答了這個問題,如果我專門配置uglify ,但在我的情況下,我使用useminPrepare來創建uglify配置,所以我只是想弄清楚useminPrepare修改uglify配置的方法。 – Hisham

+0

另外@Ace在我的情況下,我使用concat來連接一個文件中的所有腳本。那麼我應該從串聯中排除一個js文件並保留它自己嗎? – Hisham

回答

3

你可以做的是把你不想構建腳本之外再縮小文件,例如:

<!-- build:js js/app.js --> 
<script src="js/app.js"></script> 
<script src="js/minifythis.js"></script> 
<script src="js/models/minifythis.js"></script> 
<!-- endbuild --> 
<script src="js/do-not-minify-this.js"></script> 
+0

你仍然需要手動複製任何你不是最小化的文件。看看我後來的帖子舉個例子。 – vt5491

+0

如果你正在使用Grunt,你需要編輯你的Grunt文件,如果你把文件放在不同的目錄下。在我的情況下,我創建了一個Angular文件夾,因此我將{,* /} *。js添加到了複製屬性中。希望這可以幫助。 –

2

我花了幾天尋找一個解決一個問題你類似,然後我發現一個不同的問題有一個答案,可能適合解決您的問題,因爲它解決了我的問題:https://stackoverflow.com/a/24819171/785985

解決方案是定義要由Grunt處理的自定義塊。然後,您可以使用['concat']指定一個塊,使用['concat', 'uglifyjs']指定另一個塊。

0

如果您選擇從John Locke的每個項目的minification標記中排除文件,請不要忘記手動將這些文件複製到'dist'目錄。通常,當您縮小文件時,所生成的縮小庫將被複制到擴展目錄中。但既然你沒有縮小它們,你必須自己複製它們。

例如,我不想在應用程序中壓縮用戶腳本,以便人們更容易在線查​​看代碼。編輯我是index.html,從標籤中刪除後:

'<!-- build:js({.tmp,app}) scripts/scripts.js -->' 

我有以下添加到我的Gruntfile的副本步:

copy: { 
    dist: { 
    files: [ 
    ... 
     { // manually copy all the files you are not minimizing: 
     expand: true, 
     cwd: '<%= yeoman.app %>/scripts/', 
     src:"{,*/}*.js", 
     dest:"<%= yeoman.dist %>/scripts/" 
     } 
    ] 
    }, 
    ... 
}, 

用於複製文件的語法很刺在Grunt。我花了幾次嘗試才把它做好。

相關問題