Ошибка сборки travis-ci в задаче grunt-contrib-imagemin (Невозможно подготовить свойство 'content' из неопределенного
Я обнаружил ошибку во время сборки 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'
}]
}
},
Локальная сборка (выход)
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
Трэвис CI grunt build (выходной)
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
}]
Есть мысли или предложения?
2 ответа
Как продолжение...
Я успешно перенес эту проблему с помощью простого обходного пути, заменив "grunt-contrib-imagemin": "^1.0.0" на "grunt-image": "^1.2.1" ... и впоследствии обновив мой Gruntfile. JS, заменив задачи imagemin с задачами изображения...
Локальные сборки и сборки 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... которое я развертываю на Firebase Hosting через travis-ci и средство развертывания dpl.
Однако я до сих пор не определил решение исходной ошибки / проблемы с grunt-contrib-imagemin в travis-ci
Любые идеи будут высоко ценится. Ура!
удалять
node_modules
+ Изменить
package.json
использовать "grunt-contrib-imagemin": "1.0.0" и "vinyl-fs": "2.3.1"- Делать
npm install