Javascript 如何用usemin替换ui路由器版本文件的链接
给定以下文件app.jsJavascript 如何用usemin替换ui路由器版本文件的链接,javascript,gruntjs,angular-ui-router,grunt-usemin,Javascript,Gruntjs,Angular Ui Router,Grunt Usemin,给定以下文件app.js $stateProvider .state('intro', { url: '/intro', templateUrl: 'partials/intro.html', controller: 'IntroController as IntroCtrl' }) .state('search', { url: '/search', templateUrl: '
$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'
})
;
任务是将templateUrl文件更改为使用修改过的修订副本
我有一个使用grunt的目标
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文件是如何实现的?您还需要告诉usemin替换JS文件中的“filerev”映射 尝试在usemin配置中添加“js”部分:
usemin: {
html: [build_dest + '/index.html'],
js: ['js/**/*.js']
options: {
dirs: [build_dest + '', build_dest + '/dist']
}
}
此外,您还可以使用angular$cacheTemplate将所有html文件压缩为一个大文件(使用grunt-html2js),我继续搜索cetia的答案 我在以下位置找到了解决方案: 重要的补充是模式。您需要告诉usemin如何在javascript中搜索html链接
assetDirs选项的设置也很重要,因为usemins fileprocessor.js通过未更新到已更新文件的映射来查找已更新的文件,如果assetDirs设置不正确,它将找不到该文件。我用其他选项来补充解决方案,我必须设置好这些选项。很高兴你的错误解决了。你现在可以接受你自己的答案了:p
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']
]
}
}
}