【发布时间】:2017-01-11 13:49:17
【问题描述】:
我不知道为什么,因为肯定有问题,但我的任务“usemin”并没有取代我所做的脚本导入,我以更好的方式告诉它:
我有一个应用程序,当我输入“grunt build”时,它会创建一个 dist 文件夹,并且在 dist/scripts 中,它有一个名为“application.js”的串联、丑化文件
到了运行 grunt-filerev 的时候,它会对文件进行哈希处理,然后我就有了,例如 dist/scripts/application.12345678.js
这很酷,filerev 必须对文件 js 进行哈希处理,但问题(我认为)是从 filerev 到 usemin 的连接。
我的 .html 文件中有这个:
<head>
<link rel="stylesheet" href="styles/main.css"/>
</head>
<body ng-app="prova">
<!-- build:js scripts/application.js -->
<script src="scripts/app.js"></script>
<script src="scripts/config.js"></script>
<script src="scripts/routes.js"></script>
<script src="scripts/directives/home-box/home-box-controller.js"></script>
<script src="scripts/directives/home-box/home-box-directive.js"></script>
<!-- endbuild -->
</body>
在下面的这些配置中,变量 distFolder 只是 'dist' 字符串
这个usemin && usemin准备配置:
useminPrepare: {
html: 'app/index.html',
options: {
dest: '<%= distFolder %>'
}
},
usemin: {
html: ['<%= distFolder %>/index.html'],
options: {
assetsDirs: ['<%= distFolder %>'],
}
}
还有这个filerev配置:
filerev: {
options: {
encoding: 'utf8',
algorithm: 'md5',
length: 8
},
assets: {
files: [{
src: [
'<%= distFolder %>/bower_components/angular.js',
'<%= distFolder %>/scripts/application.js',
'<%= distFolder %>/styles/main.css'
]
}]
}
}
问题只是 mt main.css 被正确连接、缩小、修订和解析,所以在我的 dist 文件夹中我可以看到正确的参考,application.js 的 build:js 注释不起作用,我明白了html 脚本导入,因为我从未使用过 usemin 和 useminPrepare,它们与未构建的应用程序相同
【问题讨论】:
-
我也有类似的问题:stackoverflow.com/questions/42413309
标签: angularjs gruntjs grunt-usemin