![](/img/trans.png)
[英]Grunt imagemin error: Cannot read property 'contents' of undefined
[英]travis-ci build failure on grunt-contrib-imagemin task (Cannot ready property 'contents' of undefined
在travis-ci構建grunt-contrib-imagemin任務時遇到錯誤...
Warning: Running "imagemin:dist" (imagemin) task
Fatal error: Cannot read property 'contents' of undefined
grunt構建在我的本地計算機上成功運行,但是通過travis-ci執行時失敗
Gruntfile.js
imagemin: {
dist: {
files: [{
expand: true,
cwd: '<%= yeoman.app %>/images',
src: '{,*/}*.{png,jpg,jpeg,gif}',
dest: '<%= yeoman.dist %>/images'
}]
}
},
本地Grunt構建(輸出)
Running "imagemin:dist" (imagemin) task
Minified 9 images (saved 77.32 kB)
Done, without errors.
Execution Time (2016-01-13 17:04:49 UTC)
imagemin:dist 1.6s 100%
Total 1.6s
Travis CI grunt構建(輸出)
Warning: Running "imagemin:dist" (imagemin) task
Fatal error: Cannot read property 'contents' of undefined
Execution Time (2016-01-13 17:00:32 UTC)
loading tasks 9ms 2%
imagemin:dist 441ms 98%
Total 450ms Use --force to continue.
Aborted due to warnings.
我試圖確定在任務中聲明src的方式中是否存在語法問題...但是,情況似乎並非如此...因為我可以成功地在本地完成構建,而不會出現一些錯誤語法樣式,包括Grunt為grunt-contrib-imagemin提供的示例
參考: https : //github.com/gruntjs/grunt-contrib-imagemin
dynamic: { // Another target
files: [{
expand: true, // Enable dynamic expansion
cwd: 'src/', // Src matches are relative to this path
src: ['**/*.{png,jpg,gif}'], // Actual patterns to match
dest: 'dist/' // Destination path prefix
}]
有什么想法或建議嗎?
作為后續...
我已通過一個簡單的解決方法成功解決了此問題,方法是將“ grunt-contrib-imagemin”:“ ^ 1.0.0”換為“ grunt-image”:“ ^ 1.2.1” ...,然后更新了我的Gruntfile。 js通過將imagemin任務替換為image任務...
本地版本和Travis CI版本現在都取得了成功,並取得了相同的結果。
Gruntfile.js
image: {
dist: {
files: [{
expand: true,
cwd: '<%= yeoman.app %>/images',
src: '{,*/}*.{png,jpg,jpeg,gif}',
dest: '<%= yeoman.dist %>/images'
}]
}
},
以下是通過本地計算機和travis-ci生成的示例輸出:
Running "image:dist" (image) task
✔ app/images/npmjs.png -> before=3.75 kB after=158 B reduced=3.59 kB(95.9%)
✔ app/images/bootstrap.png -> before=41.5 kB after=21.93 kB reduced=19.57 kB(47.2%)
✔ app/images/bowerjs.png -> before=17.71 kB after=6.65 kB reduced=11.06 kB(62.5%)
✔ app/images/nodejs.png -> before=8.45 kB after=2.93 kB reduced=5.51 kB(65.3%)
✔ app/images/starterlog.png -> before=34.53 kB after=10.58 kB reduced=23.95 kB(69.3%)
✔ app/images/gruntjs.png -> before=84.38 kB after=27.98 kB reduced=56.4 kB(66.8%)
✔ app/images/firebase.png -> before=32.03 kB after=12.19 kB reduced=19.83 kB(61.9%)
✔ app/images/fontawesome.png -> before=12.01 kB after=5.63 kB reduced=6.38 kB(53.1%)
✔ app/images/angular.png -> before=41.5 kB after=18.63 kB reduced=22.87 kB(55.1%)
Done, without errors.
Execution Time (2016-01-13 17:47:44 UTC)
image:dist 2.6s 99%
Total 2.6s
這個帶有grunt-image的解決方案正在我的Angular + Firebase應用程序上運行...我正在通過travis-ci和部署工具dpl將其部署到Firebase Hosting。
但是我還沒有在travis-ci中用grunt-contrib-imagemin確定原始bug /問題的解決方案
任何想法將不勝感激。 干杯!
刪除node_modules
更改package.json
以使用“ grunt-contrib-imagemin”:“ 1.0.0”和“ vinyl-fs”:“ 2.3.1”
npm install
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.