我有一个超级简单的gulpfile,可以在本地运行:
const gulp = require('gulp');
gulp.task('build:css', function() {
return gulp.src('./node_modules/bootstrap/dist/css/*')
.pipe(gulp.dest('./build'));
});
gulp.task('build:js', function() {
return gulp.src('./node_modules/bootstrap/dist/js/*')
.pipe(gulp.dest('./build'));
});
gulp.task('build', [ 'build:css', 'build:js' ]);
gulp.task('default', [ 'build' ]);
它运行正常并将文件复制到'build'子文件夹。实际上,它也会在git push heroku master
上运行(postinstall
中的package.json
脚本):
remote: > gulp build
remote:
remote: [06:57:45] Using gulpfile /tmp/build_212ea9c2c3fab185469156431b6c1509/coming-soon/gulpfile.js
remote: [06:57:45] Starting 'build:css'...
remote: [06:57:45] Starting 'build:js'...
remote: [06:57:45] Finished 'build:css' after 17 ms
remote: [06:57:45] Finished 'build:js' after 8.18 ms
remote: [06:57:45] Starting 'build'...
remote: [06:57:45] Finished 'build' after 46 μs
但是,当应用运行时,build
文件夹不存在:
$ heroku run ls
Running ls on something... up, run.7113
gulpfile.js index.pug node_modules package.json server.js
没有.slugignore
。我尝试使用./
,__dirname
并且根本没有作为gulpfile中的路径前缀,但没有任何东西将build文件夹放到输出中。
我还能尝试什么?
答案 0 :(得分:1)
我将gulp
作为dependencies
条目,但不是bootstrap
。如果我只输出文件计数,我会看到./node_modules/bootstrap/dist/css/*
和JS对应的匹配0文件,因为boostrap
不是npm installed
- 编辑。
修复:任何构建依赖项都需要dependencies
而不是devDependencies
中的package.json
。我错过了这个。