我使用yeoman webapp
来构建基本应用程序。我使用bower install --save
安装了几个进入bower_components文件夹的库。现在我运行grunt build
,令我惊讶的是,dist文件夹中的index.html文件引用了js文件的bower_components文件夹。我曾期望构建过程自动连接这些文件,并将连接的脚本放在dist文件夹中,并使index.html文件引用此连接文件。我应该怎么做才能在默认情况下实现这一目标。
答案 0 :(得分:0)
在我的某个项目中遇到同样的问题,由于文件定位器错误而导致警告停止了grunt构建,并且因为usemin
任务是最后一个要运行的,所以我的脚本完全连接在一起缩小了,但我的html中的引用没有更新。
如果您有我的错误,请尝试修复它或运行grunt build --force
传递它。
如果不是,请检查脚本是否被构建标记正确包围
<!-- build:js({.tmp,app}) scripts/vendor.js -->
...
<!-- endbuild -->
您已正确配置rev
,useminPrepare
和usemin
任务
小例子:
rev: {
dist: {
files: {
src: [
'<%= yeoman.dist %>/public/scripts/{,*/}*.js',
'<%= yeoman.dist %>/public/styles/{,*/}*.css'
]
}
}
},
useminPrepare: {
html: '<%= yeoman.app %>/views/index.html',
options: {
dest: '<%= yeoman.dist %>/public'
}
},
usemin: {
html: '<%= yeoman.dist %>/views/{,*/}*.html',,
css: ['<%= yeoman.dist %>/public/styles/{,*/}*.css'],
options: {
assetsDirs: ['<%= yeoman.dist %>/public']
}
},
还要确保您的build
任务引用它们:
grunt.registerTask('build', [
'clean:dist',
'bower-install',
'useminPrepare',
'concurrent:dist',
'autoprefixer',
'concat',
'ngmin',
'copy:dist',
'cdnify',
'cssmin',
'uglify',
'rev',
'usemin'
]);