gulp构建输出不在Heroku slug中

时间:2016-07-06 07:02:01

标签: node.js heroku gulp

我有一个超级简单的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文件夹放到输出中。

我还能尝试什么?

1 个答案:

答案 0 :(得分:1)

我将gulp作为dependencies条目,但不是bootstrap。如果我只输出文件计数,我会看到./node_modules/bootstrap/dist/css/*和JS对应的匹配0文件,因为boostrap不是npm installed - 编辑。

修复:任何构建依赖项都需要dependencies而不是devDependencies中的package.json。我错过了这个。