我是Grunt的新手,所有的任务都要在这个问题上承担。我正在开发一个AngularJS应用程序,我最初是通过Yeoman创建的。由于很多观点,我认为将所有视图都包含在templatecache中是个好主意。所以我安装了html2js并根据他们的GitHub读取进行配置。它的工作几乎完美,除了一件事。我的模板包含对本地图像的一些引用。运行grunt build
时,所有这些图片的名称都会被revfile
更改。查看包含所有模板的dist/views
文件夹,我可以看到路径是正确的(路径已被新的路径替换)。但是,对路径的这些更改不会使其成为html2js生成的js文件。
如何让Grunt在生成的html2js js文件中正确替换路径?以下是我认为相关的grunt initConfig部分
filerev: {
dist: {
src: [
'<%= yeoman.dist %>/scripts/{,*/}*.js',
'<%= yeoman.dist %>/styles/{,*/}*.css',
'<%= yeoman.dist %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}',
'<%= yeoman.dist %>/styles/fonts/*'
]
}
},
useminPrepare: {
html: '<%= yeoman.app %>/index.html',
options: {
dest: '<%= yeoman.dist %>',
flow: {
html: {
steps: {
js: ['concat', 'uglifyjs'],
css: ['cssmin']
},
post: {}
}
}
}
},
// Performs rewrites based on filerev and the useminPrepare configuration
usemin: {
html: ['<%= yeoman.dist %>/{,*/}*.html'],
css: ['<%= yeoman.dist %>/styles/{,*/}*.css'],
options: {
assetsDirs: ['<%= yeoman.dist %>', '<%= yeoman.dist %>/images']
}
},
****************************
grunt.registerTask('build', [
'clean:dist',
'wiredep',
'useminPrepare',
'concurrent:dist',
'autoprefixer',
'html2js:main',
'concat',
'ngAnnotate',
'copy:dist',
'cdnify',
'cssmin',
'uglify',
'filerev',
'usemin',
'htmlmin'
]);
答案 0 :(得分:0)
我建议你改用grunt-angular-templates吗?它的设计正是为了将视图插入$templateCache
。
我对相对路径没有任何问题。
您甚至可以将其与https://github.com/mgcrea/grunt-nginclude
配对以内联&#34;部分&#34;。