我尝试使用gulp-inject
,但有些内容无法正常同步。我认为这与我的清洁任务有关。
gulp.task("clean", function () {
return gulp.src([
"tmp/client/**/*",
"wwwroot/**/*.css",
"wwwroot/**/*.js"
], { read: false })
.pipe(plumber())
.pipe(clean());
});
这在我的编译任务之前运行,例如:
gulp.task("dev:tsc", ["clean"], function () {
return tsResult.js
.pipe(sourceMaps.write("."))
.pipe(gulp.dest("wwwroot/js"));
});
然后我的所有编译步骤都在构建任务之前运行:
function injectTask(assets) {
var layout = gulp.src("Views/Shared/_Layout.cshtml");
var sources = gulp.src(assets, { read: false });
return layout.pipe(inject(sources, {
ignorePath: "wwwroot",
addPrefix: "~",
addRootSlash: false
})).pipe(gulp.dest("Views/Shared"));
}
gulp.task("dev:build", ["dev:tsc", "...other tasks..."], function () {
var vendorSources = vendorConfig.map(function (vendor) {
return ["wwwroot/js", vendor.srcFile].join("/");
});
return injectTask(vendorSources.concat([
"wwwroot/css/*.css",
"wwwroot/js/*.js"
]));
});
有时我的所有文件都会被注入,有时会丢失一些文件。有时我会收到有关文件丢失的错误。我怀疑我错过了一些步骤来正确地声明流上的依赖关系并防止它们重叠,我只是无法看到它是什么。 The complete gulpfile is here。有什么想法吗?