我由 yeoman 生成的 grunt 脚本通过 useminPrepare、concat 和 uglifyjs 连接和缩小 js 文件。
这很好用,但是我不希望它缩小一个 js 脚本。如何在 grunt 文件中指定它?
我由 yeoman 生成的 grunt 脚本通过 useminPrepare、concat 和 uglifyjs 连接和缩小 js 文件。
这很好用,但是我不希望它缩小一个 js 脚本。如何在 grunt 文件中指定它?
您可以做的是将不想缩小的文件放在构建脚本之外,例如:
<!-- 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>
我花了几天时间寻找与您类似的问题的解决方案,然后我发现了一个不同的问题,该问题的答案可能适合解决您的问题,因为它解决了我的问题:https ://stackoverflow.com/a/24819171/785985
解决方案是定义要由 Grunt 处理的自定义块。然后你可以用 指定一个块,用 指定另一个['concat']
块['concat', 'uglifyjs']
。
如果您选择从 John Locke 的每个项目的缩小标签中排除文件,请不要忘记手动将这些文件复制到“dist”目录。通常,当您缩小文件时,生成的缩小库会复制到 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 中复制文件的语法非常棘手。我试了几次才把它弄好。
只需在 Gruntfile.js 中将该脚本的最小化选项设置为 false。
optimization: {
minimize: false
}