Gulp 没有制作捆绑文件
Gulp not making bundle files
我无法创建我的捆绑文件,在我尝试升级到 gulp4 之前它工作正常,现在我又回到了 gulp3。我没有在我的 dist
文件夹中看到这些文件。 Gulp 在 build
和 temp
文件夹中创建了文件,但不在 bundle
或 App
文件夹中。我可以在 createBundleTask
末尾记录 task
以获得某种状态吗?或者有更好的方法来追踪这个吗?
不构建捆绑文件的任务
var task = gulp.src(entryPoint)
.pipe(gulp_jspm({
selfExecutingBundle: true
}),true)
.pipe(rename(packageId + ".bundle.js"))
.pipe(gulp.dest(paths.dist + "/bundle"));
gulp 文件
var gulp = require("gulp");
var runSequence = require("run-sequence");
var tslint = require("gulp-tslint");
var typedoc = require("gulp-typedoc");
var superstatic = require("superstatic");
var shell = require("gulp-shell");
var typescript = require("gulp-typescript");
var tsProject = typescript.createProject("tsconfig.json");
var sourcemaps = require("gulp-sourcemaps");
var rimraf = require("gulp-rimraf");
var replace = require("gulp-replace");
var rename = require("gulp-rename");
var ignore = require("gulp-ignore");
var insert = require("gulp-insert");
var concat = require("gulp-concat");
var uglify = require("gulp-uglify");
var tslintStylish = require("gulp-tslint-stylish");
var util = require("gulp-util");
var commentSwap = require("gulp-comment-swap");
var tsc = require("gulp-typescript");
var gulp_jspm = require("gulp-jspm");
var inlineNg2Template = require("gulp-inline-ng2-template");
/**
* Typescript configuration
**/
var paths = {
dist: "./dist",
sources: "./App/**/*.ts"
};
gulp.task("prod", function (callback) {
runSequence(
"compile",
"bundle",
"min",
function (error) {
if (error) {
console.log(error.message);
} else {
console.log("Production build finished successfully");
}
callback(error);
});
});
/**
* Compile TypeScript sources
*/
gulp.task("compile", ["clean"], function () {
return gulp.src("./App/**/*.ts")
.pipe(inlineNg2Template({
base: "/", // Angular2 application base folder
target: "es6", // Can swap to es5
indent: 2, // Indentation (spaces)
useRelativePaths: false, // Use components relative assset paths
removeLineBreaks: false, // Content will be included as one line
templateExtension: ".html", // Update according to your file extension
templateFunction: false // If using a function instead of a string for `templateUrl`, pass a reference to that function here
}))
.pipe(tsProject())
.pipe(ignore("References.js"))
.pipe(gulp.dest("dist/App"));
});
/**
* Bundle application parts
*/
gulp.task("bundle:template", function () {
return createBundleTask(paths.dist + "/App/Pages/TemplateEdit.js", "template");
});
gulp.task("bundle:agents", function () {
return createBundleTask(paths.dist + "/App/Pages/Maintenance/Agents.js", "agents");
});
gulp.task("bundle:indications", function () {
return createBundleTask(paths.dist + "/App/Pages/Maintenance/Indications.js", "indications");
});
gulp.task("bundle:styleguidenotes", function () {
return createBundleTask(paths.dist + "/App/Components/NoteEditor/NoteEditor.js", "styleguidenotes");
});
gulp.task("bundle:dynamicdictionary", function () {
return createBundleTask(paths.dist + "/App/Pages/Maintenance/DynamicDictionary.js", "dynamicdictionary");
});
gulp.task("bundle:splitdynamicdictionary", function () {
return createBundleTask(paths.dist + "/App/Pages/Maintenance/SplitDynamicDictionary.js", "splitdynamicdictionary");
});
gulp.task("bundle:styleguidenotesdevprocess", function () {
return createBundleTask(paths.dist + "/App/Pages/StyleGuideNote/Index.js", "styleguidenotesdevprocess");
});
gulp.task("bundle:scheduling", function () {
return createBundleTask(paths.dist + "/App/Pages/Scheduling/Index.js", "scheduling");
});
gulp.task("bundle:templatesmanagement", function () {
return createBundleTask(paths.dist + "/App/Pages/TemplatesManagement/Index.js", "templatesmanagement");
});
gulp.task("bundle:review", function () {
return createBundleTask(paths.dist + "/App/Pages/Review/Index.js", "review");
});
gulp.task("bundle:ownedreview", function () {
return createBundleTask(paths.dist + "/App/Pages/OwnedReview/Index.js", "ownedreview");
});
gulp.task("bundle:pdfqueue", function () {
return createBundleTask(paths.dist + "/App/Pages/PdfQueue/Index.js", "pdfqueue");
});
gulp.task("bundle:admin", function () {
return createBundleTask(paths.dist + "/App/Pages/Admin/Index.js", "admin");
});
gulp.task("bundle", function (callback) {
runSequence(
"bundle:template",
"bundle:agents",
"bundle:indications",
"bundle:styleguidenotes",
"bundle:dynamicdictionary",
"bundle:splitdynamicdictionary",
"bundle:styleguidenotesdevprocess",
"bundle:scheduling",
"bundle:templatesmanagement",
"bundle:review",
"bundle:ownedreview",
"bundle:pdfqueue",
"bundle:admin",
function (error) {
if (error) {
console.log(error.message);
} else {
console.log("Bundling finished successfully");
}
callback(error);
});
});
/**
* Create application package
*/
gulp.task("min:template", function () {
return createProductionPackageTask("template", true);
});
gulp.task("min:agents", function () {
return createProductionPackageTask("agents", false);
});
gulp.task("min:indications", function () {
return createProductionPackageTask("indications", false);
});
gulp.task("min:styleguidenotes", function () {
return createProductionPackageTask("styleguidenotes", false);
});
gulp.task("min:dynamicdictionary", function () {
return createProductionPackageTask("dynamicdictionary", false);
});
gulp.task("min:splitdynamicdictionary", function () {
return createProductionPackageTask("splitdynamicdictionary", false);
});
gulp.task("min:styleguidenotesdevprocess", function () {
return createProductionPackageTask("styleguidenotesdevprocess", false);
});
gulp.task("min:scheduling", function () {
return createProductionPackageTask("scheduling", false);
});
gulp.task("min:templatesmanagement", function () {
return createProductionPackageTask("templatesmanagement", false);
});
gulp.task("min:review", function () {
return createProductionPackageTask("review", false);
});
gulp.task("min:ownedreview", function () {
return createProductionPackageTask("ownedreview", false);
});
gulp.task("min:pdfqueue", function () {
return createProductionPackageTask("pdfqueue", false);
});
gulp.task("min:admin", function () {
return createProductionPackageTask("admin", false);
});
gulp.task("min", function (callback) {
runSequence(
"min:template",
"min:agents",
"min:indications",
"min:styleguidenotes",
"min:dynamicdictionary",
"min:splitdynamicdictionary",
"min:styleguidenotesdevprocess",
"min:scheduling",
"min:templatesmanagement",
"min:review",
"min:ownedreview",
"min:pdfqueue",
"min:admin",
function (error) {
if (error) {
console.log(error.message);
} else {
console.log("Minification finished successfully");
}
callback(error);
});
});
/**
* Clean build folder
*/
gulp.task("clean", function () {
return gulp.src(paths.dist, { read: false }).pipe(rimraf({ force: true }));
});
/**
* Helper methods
*/
var createBundleTask = function (entryPoint, packageId) {
if (typeof entryPoint === "undefined") {
throw "ArgumentNullException: entryPoint";
}
if (typeof packageId === "undefined") {
throw "ArgumentNullException: packageId";
}
var task = gulp.src(entryPoint)
.pipe(gulp_jspm({ selfExecutingBundle: true }))
.pipe(rename(packageId + ".bundle.js"))
.pipe(gulp.dest(paths.dist + "/bundle"));
return task;
};
var createProductionPackageTask = function (packageId, uglifyDestination) {
if (typeof packageId === "undefined") {
throw "ArgumentNullException: packageId";
}
var filesArry = [
"./node_modules/core-js/client/shim.min.js",
"./node_modules/zone.js/dist/zone.js",
"./node_modules/reflect-metadata/Reflect.js",
paths.dist + "/bundle/" + packageId + ".bundle.js"
];
var task = gulp.src(filesArry)
.pipe(concat(packageId + "_concatApp.js"))
.pipe(gulp.dest(paths.dist + "/temp"))
.pipe(rename(packageId + ".bundle.min.js"));
if (uglifyDestination) {
task = task.pipe(uglify({ mangle: false }));
}
return task.pipe(gulp.dest(paths.dist + "/build"));
};
Gulp 4 删除了 gulp.task
的 3 参数语法,如 changelog.
中所述
这意味着现在应该使用两个新函数以不同方式处理依赖任务:
gulp.series()
gulp.parallel()
您可以在 migration guide.
中阅读有关此重大更改的更多信息
因此您需要进行 2 处更改:
目前,在您的 gulp 文件中您有这个任务:
gulp.task("compile", ["clean"], function () {
...
});
所以你必须把它改成:
gulp.task('compile', gulp.series('clean', function() {
...
}));
同样,您必须将runSequence
替换为task.series
或task.parallel
(只有您知道这些任务必须运行串行还是并行) .
另一种选择是将您当前使用的 Gulp 3 兼容包 run-sequence
更新为 Gulp 4 兼容包 gulp4-run-sequence.
我无法创建我的捆绑文件,在我尝试升级到 gulp4 之前它工作正常,现在我又回到了 gulp3。我没有在我的 dist
文件夹中看到这些文件。 Gulp 在 build
和 temp
文件夹中创建了文件,但不在 bundle
或 App
文件夹中。我可以在 createBundleTask
末尾记录 task
以获得某种状态吗?或者有更好的方法来追踪这个吗?
不构建捆绑文件的任务
var task = gulp.src(entryPoint)
.pipe(gulp_jspm({
selfExecutingBundle: true
}),true)
.pipe(rename(packageId + ".bundle.js"))
.pipe(gulp.dest(paths.dist + "/bundle"));
gulp 文件
var gulp = require("gulp");
var runSequence = require("run-sequence");
var tslint = require("gulp-tslint");
var typedoc = require("gulp-typedoc");
var superstatic = require("superstatic");
var shell = require("gulp-shell");
var typescript = require("gulp-typescript");
var tsProject = typescript.createProject("tsconfig.json");
var sourcemaps = require("gulp-sourcemaps");
var rimraf = require("gulp-rimraf");
var replace = require("gulp-replace");
var rename = require("gulp-rename");
var ignore = require("gulp-ignore");
var insert = require("gulp-insert");
var concat = require("gulp-concat");
var uglify = require("gulp-uglify");
var tslintStylish = require("gulp-tslint-stylish");
var util = require("gulp-util");
var commentSwap = require("gulp-comment-swap");
var tsc = require("gulp-typescript");
var gulp_jspm = require("gulp-jspm");
var inlineNg2Template = require("gulp-inline-ng2-template");
/**
* Typescript configuration
**/
var paths = {
dist: "./dist",
sources: "./App/**/*.ts"
};
gulp.task("prod", function (callback) {
runSequence(
"compile",
"bundle",
"min",
function (error) {
if (error) {
console.log(error.message);
} else {
console.log("Production build finished successfully");
}
callback(error);
});
});
/**
* Compile TypeScript sources
*/
gulp.task("compile", ["clean"], function () {
return gulp.src("./App/**/*.ts")
.pipe(inlineNg2Template({
base: "/", // Angular2 application base folder
target: "es6", // Can swap to es5
indent: 2, // Indentation (spaces)
useRelativePaths: false, // Use components relative assset paths
removeLineBreaks: false, // Content will be included as one line
templateExtension: ".html", // Update according to your file extension
templateFunction: false // If using a function instead of a string for `templateUrl`, pass a reference to that function here
}))
.pipe(tsProject())
.pipe(ignore("References.js"))
.pipe(gulp.dest("dist/App"));
});
/**
* Bundle application parts
*/
gulp.task("bundle:template", function () {
return createBundleTask(paths.dist + "/App/Pages/TemplateEdit.js", "template");
});
gulp.task("bundle:agents", function () {
return createBundleTask(paths.dist + "/App/Pages/Maintenance/Agents.js", "agents");
});
gulp.task("bundle:indications", function () {
return createBundleTask(paths.dist + "/App/Pages/Maintenance/Indications.js", "indications");
});
gulp.task("bundle:styleguidenotes", function () {
return createBundleTask(paths.dist + "/App/Components/NoteEditor/NoteEditor.js", "styleguidenotes");
});
gulp.task("bundle:dynamicdictionary", function () {
return createBundleTask(paths.dist + "/App/Pages/Maintenance/DynamicDictionary.js", "dynamicdictionary");
});
gulp.task("bundle:splitdynamicdictionary", function () {
return createBundleTask(paths.dist + "/App/Pages/Maintenance/SplitDynamicDictionary.js", "splitdynamicdictionary");
});
gulp.task("bundle:styleguidenotesdevprocess", function () {
return createBundleTask(paths.dist + "/App/Pages/StyleGuideNote/Index.js", "styleguidenotesdevprocess");
});
gulp.task("bundle:scheduling", function () {
return createBundleTask(paths.dist + "/App/Pages/Scheduling/Index.js", "scheduling");
});
gulp.task("bundle:templatesmanagement", function () {
return createBundleTask(paths.dist + "/App/Pages/TemplatesManagement/Index.js", "templatesmanagement");
});
gulp.task("bundle:review", function () {
return createBundleTask(paths.dist + "/App/Pages/Review/Index.js", "review");
});
gulp.task("bundle:ownedreview", function () {
return createBundleTask(paths.dist + "/App/Pages/OwnedReview/Index.js", "ownedreview");
});
gulp.task("bundle:pdfqueue", function () {
return createBundleTask(paths.dist + "/App/Pages/PdfQueue/Index.js", "pdfqueue");
});
gulp.task("bundle:admin", function () {
return createBundleTask(paths.dist + "/App/Pages/Admin/Index.js", "admin");
});
gulp.task("bundle", function (callback) {
runSequence(
"bundle:template",
"bundle:agents",
"bundle:indications",
"bundle:styleguidenotes",
"bundle:dynamicdictionary",
"bundle:splitdynamicdictionary",
"bundle:styleguidenotesdevprocess",
"bundle:scheduling",
"bundle:templatesmanagement",
"bundle:review",
"bundle:ownedreview",
"bundle:pdfqueue",
"bundle:admin",
function (error) {
if (error) {
console.log(error.message);
} else {
console.log("Bundling finished successfully");
}
callback(error);
});
});
/**
* Create application package
*/
gulp.task("min:template", function () {
return createProductionPackageTask("template", true);
});
gulp.task("min:agents", function () {
return createProductionPackageTask("agents", false);
});
gulp.task("min:indications", function () {
return createProductionPackageTask("indications", false);
});
gulp.task("min:styleguidenotes", function () {
return createProductionPackageTask("styleguidenotes", false);
});
gulp.task("min:dynamicdictionary", function () {
return createProductionPackageTask("dynamicdictionary", false);
});
gulp.task("min:splitdynamicdictionary", function () {
return createProductionPackageTask("splitdynamicdictionary", false);
});
gulp.task("min:styleguidenotesdevprocess", function () {
return createProductionPackageTask("styleguidenotesdevprocess", false);
});
gulp.task("min:scheduling", function () {
return createProductionPackageTask("scheduling", false);
});
gulp.task("min:templatesmanagement", function () {
return createProductionPackageTask("templatesmanagement", false);
});
gulp.task("min:review", function () {
return createProductionPackageTask("review", false);
});
gulp.task("min:ownedreview", function () {
return createProductionPackageTask("ownedreview", false);
});
gulp.task("min:pdfqueue", function () {
return createProductionPackageTask("pdfqueue", false);
});
gulp.task("min:admin", function () {
return createProductionPackageTask("admin", false);
});
gulp.task("min", function (callback) {
runSequence(
"min:template",
"min:agents",
"min:indications",
"min:styleguidenotes",
"min:dynamicdictionary",
"min:splitdynamicdictionary",
"min:styleguidenotesdevprocess",
"min:scheduling",
"min:templatesmanagement",
"min:review",
"min:ownedreview",
"min:pdfqueue",
"min:admin",
function (error) {
if (error) {
console.log(error.message);
} else {
console.log("Minification finished successfully");
}
callback(error);
});
});
/**
* Clean build folder
*/
gulp.task("clean", function () {
return gulp.src(paths.dist, { read: false }).pipe(rimraf({ force: true }));
});
/**
* Helper methods
*/
var createBundleTask = function (entryPoint, packageId) {
if (typeof entryPoint === "undefined") {
throw "ArgumentNullException: entryPoint";
}
if (typeof packageId === "undefined") {
throw "ArgumentNullException: packageId";
}
var task = gulp.src(entryPoint)
.pipe(gulp_jspm({ selfExecutingBundle: true }))
.pipe(rename(packageId + ".bundle.js"))
.pipe(gulp.dest(paths.dist + "/bundle"));
return task;
};
var createProductionPackageTask = function (packageId, uglifyDestination) {
if (typeof packageId === "undefined") {
throw "ArgumentNullException: packageId";
}
var filesArry = [
"./node_modules/core-js/client/shim.min.js",
"./node_modules/zone.js/dist/zone.js",
"./node_modules/reflect-metadata/Reflect.js",
paths.dist + "/bundle/" + packageId + ".bundle.js"
];
var task = gulp.src(filesArry)
.pipe(concat(packageId + "_concatApp.js"))
.pipe(gulp.dest(paths.dist + "/temp"))
.pipe(rename(packageId + ".bundle.min.js"));
if (uglifyDestination) {
task = task.pipe(uglify({ mangle: false }));
}
return task.pipe(gulp.dest(paths.dist + "/build"));
};
Gulp 4 删除了 gulp.task
的 3 参数语法,如 changelog.
这意味着现在应该使用两个新函数以不同方式处理依赖任务:
gulp.series()
gulp.parallel()
您可以在 migration guide.
中阅读有关此重大更改的更多信息因此您需要进行 2 处更改:
目前,在您的 gulp 文件中您有这个任务:
gulp.task("compile", ["clean"], function () { ... });
所以你必须把它改成:
gulp.task('compile', gulp.series('clean', function() { ... }));
同样,您必须将
runSequence
替换为task.series
或task.parallel
(只有您知道这些任务必须运行串行还是并行) .另一种选择是将您当前使用的 Gulp 3 兼容包
run-sequence
更新为 Gulp 4 兼容包 gulp4-run-sequence.