1

したがって、私には単純なユースケースがあり、 https://github.com/jonkemp/gulp-userrefの readme に記載されているユースケースに非常に似ているようです。

ビルド中にすべての Angular テンプレートを含む templates.js ファイルを生成しようとしています。これを実行しようとしていますが、ローカル プロジェクトに templates.js ファイルがありません。したがって、テンプレートストリームの出力をユーザーリファレンスストリームにマージして、結果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 の出力をマージして、すべてを 1 つの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 に答える