2

必要な手順

  1. clean buildディレクトリ。
  2. compile typescript files次に、コンパイルされたファイルをビルド ディレクトリに配置します。
  3. inject compiled filesindex.html へのスクリプトとして、ビルド ディレクトリに配置します。

プロジェクトの構造

-- build
-- src
   --app
     --app.ts
     ..
-- index.html

index.html

<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
    <!-- inject:js -->
    <!-- endinject -->
</body>
</html>

ガルプタスク

"devDependencies": {
   "del": "^2.2.0",
   "gulp": "^3.9.0",
   "gulp-inject": "^3.0.0",
   "gulp-typescript": "^2.10.0",
   "run-sequence": "^1.1.5"
}

gulp.task('clean', function() {
   return del('build');
});

gulp.task('ts', funtion() {
   var tsProject = ts.createProject('tsconfig.json');
   return tsProject.src('src/**/*.ts')
        .pipe(ts(tsProject))
        .js.pipe(gulp.dest('build'));
});

gulp.task('inject', funtion() {
   return gulp.src('index.html')
        .pipe(inject(gulp.src('build/**/*.js', {read: false}), {ignorePath: 'build', relative: true}))
        .pipe(gulp.dest('build'));
});

gulp.task('build', function() {
   runSequence('clean', 'ts', 'inject');
});

問題

私が実行するgulp ts && gulp injectと、それは完全に機能します。

私が実行gulp buildするinjectと、メッセージが出力されずに機能しません。

run-sequence に問題があると思います。問題点と解決方法を教えてください。

4

1 に答える 1

1

数時間掘り下げた後、タスクが不適切なストリームを返すと、run-sequence が警告やエラーなしで実行を停止することに気付きました。これが同じ問題を抱えている他の人に役立つことを願っています。

于 2015-12-27T13:46:19.607 に答える