Gulp注入未注入我的所有文件。仅添加一个main.scss文件

时间:2019-07-17 12:46:03

标签: gulp gulp-inject

从昨天开始,我在重建后的gulp注入中遇到了问题,而gulp-inject没有注入我的所有文件。仅添加一个main.scss文件

在gulp造型任务中未做任何更改。相同的代码在我的舞台环境上工作,因为我没有重建口水。

这是代码段。

  var injectFiles = gulp.src([
    path.join(conf.paths.src, '/sass/**/_*.scss'),
    '!' + path.join(conf.paths.src, '/sass/theme/conf/**/*.scss'),
    '!' + path.join(conf.paths.src, '/sass/404.scss'),
    '!' + path.join(conf.paths.src, '/sass/auth.scss')
  ], {read: false});

  var injectOptions = {
    transform: function (filePath) {
      filePath = filePath.replace(conf.paths.src + '/sass/', '');
      return '@import "' + filePath + '";';
    },
    starttag: '// injector',
    endtag: '// endinjector',
    addRootSlash: false
  };

  return gulp.src([
    path.join(conf.paths.src, '/sass/main.scss')
  ])
    .pipe($.inject(injectFiles, injectOptions))
    .pipe(wiredep(_.extend({}, conf.wiredep)))
    .pipe($.sourcemaps.init())
    .pipe($.sass(sassOptions)).on('error', conf.errorHandler('Sass'))
    .pipe($.autoprefixer()).on('error', conf.errorHandler('Autoprefixer'))
    .pipe($.sourcemaps.write())
    .pipe(gulp.dest(path.join(conf.paths.tmp, '/serve/app/')));
};

2 个答案:

答案 0 :(得分:2)

发现将gulp-inject更新到版本5.0.3可解决此问题。 https://github.com/klei/gulp-inject/pull/258

答案 1 :(得分:1)

评估package-lock.json文件之后。 gulp-inject需要以下依赖项

"gulp-inject": {
  "requires": {
    "arrify": "^1.0.1",
    "escape-string-regexp": "^1.0.5",
    "event-stream": "^3.1.0",
    "group-array": "^0.3.0",
    "gulp-util": "^3.0.0",
    "stream-to-array": "^2.3.0",
    "through2": "^2.0.1"
  }
},

一一还原所有必需依赖项的版本后,我可以解决此问题。 这是由于我的package-lock.json文件中的group-array@0.3.4。

"group-array": {
  "version": "0.3.4",
  "requires": {
    "arr-flatten": "^1.0.1",
    "for-own": "^0.1.4",
    "get-value": "^2.0.6",
    "kind-of": "^3.1.0",
    "split-string": "^1.0.1",
    "union-value": "^1.0.1"
  }

通过在package.json文件中添加安装后脚本来解决此问题

"postinstall": "npm i group-array@0.3.3 --save"