给定以下文件应用程序.js
$stateProvider
.state('intro', {
url: '/intro',
templateUrl: 'partials/intro.html',
controller: 'IntroController as IntroCtrl'
})
.state('search', {
url: '/search',
templateUrl: 'partials/search.html',
controller: 'SearchController as searchCtrl'
})
;
任务是将模板 Url 文件更改为使用咕噜咕噜 filerev 修订的修订对应项。
我有一个咕噜咕噜的usemin目标
useminPrepare: {// configuration which tasks usemin will change/run
html: build_src + '/index.html',
options: {
dest: build_dest + '',
}
},
usemin: {
html: [build_dest + '/index.html'],
options: {
dirs: [build_dest + '', build_dest + '/dist']
}
}
它记录了如何在 html 中插入块注释,然后 usemin 执行修订和替换修订的文件。
如何实现javascript文件?
我继续搜索cetia的答案
我在以下位置找到了解决方案:https://github.com/yeoman/grunt-usemin/issues/235#issuecomment-33316221
usemin: {
html: [build_dest + '/index.html'],
js:[build_dest + '/**/*.js'],
options: {
dirs:[build_dest, build_dest + '/dist'],
assetsDirs: [build_dest],
patterns: {
// FIXME While usemin won't have full support for revved files we have to put all references manually here
js: [
[/(partials/.*?.html)/gm, 'Update the JS to reference our revved partials']
]
}
}
}
重要的补充是模式。你需要说如何使用 javascript 中的 html 链接。
设置assetDirs 选项也很重要,因为 usemins 文件处理器.js通过未修订到已修改文件的映射查找已修订的文件,如果未正确设置资产目录,则不会找到它。
你还需要告诉 usemin 替换 JS 文件中的"filerev"映射。
尝试在 usemin 配置中添加一个"js"部分:
usemin: {
html: [build_dest + '/index.html'],
js: ['js/**/*.js']
options: {
dirs: [build_dest + '', build_dest + '/dist']
}
}
此外,您还可以使用角度$cacheTemplate将所有html文件连接到一个大文件(使用grunt-html2js)