Yeoman grunt build 不会抛出任何 warning/error 但生成的 dist 不起作用
Yeoman grunt build does not throw any warning/error but the resulting dist is not working
在 angular 应用程序中,我执行 grunt build
或 grunt serve:dist
来构建我的生产文件并将它们部署到远程服务器上。一切看起来都很好,我在 yeoman 日志中看不到任何警告消息。 yo doctor
也很开心("Everything looks all right!").
问题是,每当我进入 dist/index.html
时,我都会从控制台收到以下消息:
Failed to load resource: the server responded with a status of 404
(Not Found). http://localhost:9000/components/portal/portal.html
Error: [$compile:tpload] Failed to load template:
components/portal/portal.html
portal.html
是第一个在应用程序中显示的模板 当它未缩小时 。我很惊讶该应用程序试图在 components/
中获取资源,因为所有 html 现在应该在 dist/index.html
中,对吗?
我正在使用 Yeoman 版本 1.4.6 和来自 angular
生成器的默认 GruntFile.js
。更具体地说,build
任务定义如下:
grunt.registerTask('build', [
'clean:dist',
'wiredep',
'useminPrepare',
'concurrent:dist',
'autoprefixer',
'concat',
'ngAnnotate',
'copy:dist',
'cdnify',
'cssmin',
'uglify',
'filerev',
'usemin',
'htmlmin'
]);
我的问题可能是什么原因造成的?欢迎索取更多信息。
在 Gruntfile.js
他们说
// for performance reasons we're only matching one level down:
// 'test/spec/{,*/}*.js'
// use this if you want to recursively match all subfolders:
// 'test/spec/**/*.js'
所以问题是我项目的一部分位于根目录下不止一层。在涉及的任务中将 {,*/}*
更改为 **/*
解决了该问题。
在 angular 应用程序中,我执行 grunt build
或 grunt serve:dist
来构建我的生产文件并将它们部署到远程服务器上。一切看起来都很好,我在 yeoman 日志中看不到任何警告消息。 yo doctor
也很开心("Everything looks all right!").
问题是,每当我进入 dist/index.html
时,我都会从控制台收到以下消息:
Failed to load resource: the server responded with a status of 404 (Not Found). http://localhost:9000/components/portal/portal.html
Error: [$compile:tpload] Failed to load template: components/portal/portal.html
portal.html
是第一个在应用程序中显示的模板 当它未缩小时 。我很惊讶该应用程序试图在 components/
中获取资源,因为所有 html 现在应该在 dist/index.html
中,对吗?
我正在使用 Yeoman 版本 1.4.6 和来自 angular
生成器的默认 GruntFile.js
。更具体地说,build
任务定义如下:
grunt.registerTask('build', [
'clean:dist',
'wiredep',
'useminPrepare',
'concurrent:dist',
'autoprefixer',
'concat',
'ngAnnotate',
'copy:dist',
'cdnify',
'cssmin',
'uglify',
'filerev',
'usemin',
'htmlmin'
]);
我的问题可能是什么原因造成的?欢迎索取更多信息。
在 Gruntfile.js
他们说
// for performance reasons we're only matching one level down:
// 'test/spec/{,*/}*.js'
// use this if you want to recursively match all subfolders:
// 'test/spec/**/*.js'
所以问题是我项目的一部分位于根目录下不止一层。在涉及的任务中将 {,*/}*
更改为 **/*
解决了该问题。