如何使grunt不缩小某些js文件

时间:2014-07-07 23:29:55

标签: gruntjs uglifyjs grunt-usemin grunt-contrib-concat

我的grunt脚本由yeoman生成concats并通过useminPrepare,concat和uglifyjs缩小js文件。

这很有效,但有一个js脚本我不想让它缩小。如何在grunt文件中指定?

4 个答案:

答案 0 :(得分: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>

答案 1 :(得分:2)

我花了几天时间寻找类似于你的问题的解决方案,然后我发现了一个不同的问题,它有一个可以解决你问题的答案,因为它解决了我的问题:https://stackoverflow.com/a/24819171/785985

解决方案是定义Grunt要处理的自定义块。然后,您可以使用['concat']指定一个块,使用['concat', 'uglifyjs']指定另一个块。

答案 2 :(得分:1)

如果您选择从John Locke的每件商品中删除缩小标签中的文件,请不要忘记将这些文件手动复制到&#39; dist&#39; DIR。通常,当您缩小文件时,生成的缩小库将复制到dist目录。但是既然你没有缩小它们,你必须自己复制它们。

例如,我不想在我的应用中压缩用户脚本,以便人们更容易在线检查代码。编辑我的&#39; index.html&#39;从标签中删除它们:

'<!-- 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中复制文件的语法非常棘手。我花了几次尝试才能把它弄好。

答案 3 :(得分:0)

只需在Gruntfile.js中将该脚本的最小化选项设置为false。

optimization: {
    minimize: false
}