gulp-useref "additionalStreams" 不合并



所以我有一个简单的用例,它看起来与https://github.com/jonkemp/gulp-useref的自述文件中描述的用例非常相似。

我试图在构建过程中生成一个包含所有Angular模板的templates.js文件。我正试图这样做,而不是在我的本地项目有一个模板。js文件。因此,我们的想法是将模板流的输出合并到useref流中,以便生成的scripts.js文件将包含我的索引文件中指示的所有文件和生成的templates输出。

下面是我在gulp任务中的内容:

gulp.task('usemin:dist', ['clean:dist'], function() {
  var templatesStream = gulp.src([
    './app/**/*.html',
    '!./app/index.html',
    '!./app/404.html'
  ]).pipe(templateCache({
    module: 'myCoolApp'
  }));
  var assets = $useref.assets({
    additionalStreams: [templatesStream]
  });
  return gulp.src('./app/index.html')
      .pipe(assets)
      .pipe(assets.restore())
      .pipe($useref())
      .pipe(gulp.dest('./dist/'));
});

现在这应该允许我合并templatesStream的输出,并把它全部变成一个scripts.js文件,我想…

我也试过有许多形式的<script src="scripts/templates.js"></script>坐在我的索引文件,试图帮助它。

还有人在做同样的事情吗?似乎是一个常见的用例。

通过仔细查看测试用例,我能够使其工作。我现在有一个templates.js脚本标签在我的index.html文件,将404,而在我的本地环境。

我的gulp任务是这样的:

gulp.task('useref:dist', ['clean:dist'], function() {
  var templateStream = gulp.src([
    './app/**/*.html',
    '!./app/index.html',
    '!./app/404.html'
  ]).pipe(templateCache({
    module: 'digitalWorkspaceApp'
  }));
  var assets = $useref.assets({
    additionalStreams: [templateStream]
  });
  var jsFilter = $filter('**/*.js', {restore: true});
  return gulp.src('./app/index.html')
    .pipe(assets)
    .pipe($useref())
    .pipe(gulp.dest('./dist/'));
});

我马上就看不出有什么区别,但这可能都取决于在我的index.html中添加了这个不存在的文件。

最新更新