1

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

我正在尝试在构建期间使用所有 Angular 模板生成一个 templates.js 文件。我正在尝试这样做并且在我的本地项目中没有 templates.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>在我的索引文件中放置许多表格来尝试帮助它。似乎没有一个工作。

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

4

1 回答 1

2

通过仔细查看测试用例,我能够让它发挥作用。我现在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 中添加了这个不存在的文件。

于 2015-10-19T17:27:30.860 回答