У меня раздражающая проблема, когда uglify (вызывается через grunt-usemin) не может проанализировать URL-адрес пакета с именем flow.js. Этот пакет устанавливается как зависимость от ng-flow.
URL-адрес выглядит следующим образом:
bower_components/flow.js/dist/flow.js
Когда я запускаю сборку grunt, я получаю следующую ошибку:
Warning: Unable to read "dist/public/bower_components/flow.js" file (Error code: EISDIR). Use --force to continue.
Поскольку я мало что знаю о usemin и uglify, я не могу разобраться в этом вопросе. Я предполагаю, что он ломается, когда попадает на первый «flow.js» URL-адреса. Итак, я попытался установить flow.js как поток js в моем bower.json, но, поскольку он зависит от ng-flow, он все равно будет получать flow.js при запуске обновления Bower.
Может ли кто-нибудь рассказать мне больше об этой ошибке или предложить обходной путь для переименования пакета зависимостей?
Редактировать: usemin часть 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']);
Для записей файл grunt создается с использованием https://github.com/DaftMonk/generator-angular-fullstack