我遇到了一个烦人的问题,即 uglify(通过 grunt-usemin 调用)无法解析名为 flow.js 的包的 url。该软件包作为 ng-flow 的依赖项安装。
网址如下所示:
bower_components/flow.js/dist/flow.js
当我运行 grunt build 时,我收到以下错误:
Warning: Unable to read "dist/public/bower_components/flow.js" file (Error code: EISDIR). Use --force to continue.
由于我对 usemin 和 uglify 了解不多,所以我无法解决这个问题。我的猜测是当它到达网址的第一个“flow.js”时它会中断。因此,我尝试在我的 bower.json 中将 flow.js 安装为 flowjs,但是由于它是 ng-flow 的依赖项,因此在运行 bower update 时它仍然会获得 flow.js。
谁能告诉我有关此错误的更多信息,或建议我重命名依赖包的解决方法?
编辑:使用 Gruntfile 的一部分
useminPrepare: {
html: ['<%= yeoman.client %>/index.html'],
options: {
dest: '<%= yeoman.dist %>/public'
}
},
usemin: {
html: ['<%= yeoman.dist %>/public/{,*/}*.html'],
css: ['<%= yeoman.dist %>/public/{,*/}*.css'],
js: ['<%= yeoman.dist %>/public/**/*.js'],
options: {
assetsDirs: [
'<%= yeoman.dist %>/public',
'<%= yeoman.dist %>/public/assets/images'
],
// This is so we update image references in our ng-templates
patterns: {
js: [
[/(assets\/images\/.*?\.(?:gif|jpeg|jpg|png|webp|svg))/gm, 'Update the JS to reference our revved images']
]
}
}
}
grunt.registerTask('build', [
'clean:dist',
'injector:less',
'concurrent:dist',
'injector',
'wiredep',
'useminPrepare',
'autoprefixer',
'ngtemplates',
'concat',
'ngAnnotate',
'copy:dist',
'cdnify',
'cssmin',
'uglify',
'rev',
'usemin']);
对于记录,使用https://github.com/DaftMonk/generator-angular-fullstack生成 grunt 文件