fix: apply terser plugin only on *.min.js (#12099)
* fix: apply terser plugin only on *.min.js * chore: move rollup terser to output plugin * chore: simplify rollup build scripts
This commit is contained in:
parent
434b65bc2a
commit
3d5da4c2b9
76
Gulpfile.js
76
Gulpfile.js
@ -84,46 +84,32 @@ function buildBabel(exclude, sourcesGlob = defaultSourcesGlob) {
|
|||||||
.pipe(gulp.dest(base));
|
.pipe(gulp.dest(base));
|
||||||
}
|
}
|
||||||
|
|
||||||
let babelVersion = require("./packages/babel-core/package.json").version;
|
// If this build is part of a pull request, include the pull request number in
|
||||||
|
// the version number.
|
||||||
|
let versionSuffix = "";
|
||||||
|
if (process.env.CIRCLE_PR_NUMBER) {
|
||||||
|
versionSuffix = "+pr." + process.env.CIRCLE_PR_NUMBER;
|
||||||
|
}
|
||||||
|
|
||||||
|
const babelVersion =
|
||||||
|
require("./packages/babel-core/package.json").version + versionSuffix;
|
||||||
function buildRollup(packages) {
|
function buildRollup(packages) {
|
||||||
const sourcemap = process.env.NODE_ENV === "production";
|
const sourcemap = process.env.NODE_ENV === "production";
|
||||||
const minify = !!process.env.IS_PUBLISH;
|
|
||||||
return Promise.all(
|
return Promise.all(
|
||||||
packages.map(
|
packages.map(async ({ src, format, dest, name, filename, version }) => {
|
||||||
({ src, format, dest, name, filename, version = babelVersion }) => {
|
|
||||||
const extraPlugins = [];
|
|
||||||
let nodeResolveBrowser = false,
|
let nodeResolveBrowser = false,
|
||||||
babelEnvName = "rollup";
|
babelEnvName = "rollup";
|
||||||
switch (src) {
|
switch (src) {
|
||||||
case "packages/babel-standalone":
|
case "packages/babel-standalone":
|
||||||
nodeResolveBrowser = true;
|
nodeResolveBrowser = true;
|
||||||
babelEnvName = "standalone";
|
babelEnvName = "standalone";
|
||||||
if (minify) {
|
|
||||||
extraPlugins.push(
|
|
||||||
rollupTerser({
|
|
||||||
// workaround https://bugs.webkit.org/show_bug.cgi?id=212725
|
|
||||||
output: {
|
|
||||||
ascii_only: true,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// If this build is part of a pull request, include the pull request number in
|
|
||||||
// the version number.
|
|
||||||
if (process.env.CIRCLE_PR_NUMBER) {
|
|
||||||
const prVersion = "+pr." + process.env.CIRCLE_PR_NUMBER;
|
|
||||||
babelVersion += prVersion;
|
|
||||||
version += prVersion;
|
|
||||||
}
|
|
||||||
const input = getIndexFromPackage(src);
|
const input = getIndexFromPackage(src);
|
||||||
fancyLog(`Compiling '${chalk.cyan(input)}' with rollup ...`);
|
fancyLog(`Compiling '${chalk.cyan(input)}' with rollup ...`);
|
||||||
return rollup
|
const bundle = await rollup.rollup({
|
||||||
.rollup({
|
|
||||||
input,
|
input,
|
||||||
plugins: [
|
plugins: [
|
||||||
...extraPlugins,
|
|
||||||
rollupBabelSource(),
|
rollupBabelSource(),
|
||||||
rollupReplace({
|
rollupReplace({
|
||||||
"process.env.NODE_ENV": JSON.stringify(process.env.NODE_ENV),
|
"process.env.NODE_ENV": JSON.stringify(process.env.NODE_ENV),
|
||||||
@ -159,43 +145,43 @@ function buildRollup(packages) {
|
|||||||
include: "**/*.js",
|
include: "**/*.js",
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
})
|
});
|
||||||
.then(bundle => {
|
|
||||||
const outputFile = path.resolve(src, dest, filename || "index.js");
|
const outputFile = path.join(src, dest, filename || "index.js");
|
||||||
return bundle
|
await bundle.write({
|
||||||
.write({
|
|
||||||
file: outputFile,
|
file: outputFile,
|
||||||
format,
|
format,
|
||||||
name,
|
name,
|
||||||
sourcemap: sourcemap,
|
sourcemap: sourcemap,
|
||||||
})
|
});
|
||||||
.then(() => {
|
|
||||||
if (!process.env.IS_PUBLISH) {
|
if (!process.env.IS_PUBLISH) {
|
||||||
fancyLog(
|
fancyLog(
|
||||||
chalk.yellow(
|
chalk.yellow(
|
||||||
`Skipped minification of '${chalk.cyan(
|
`Skipped minification of '${chalk.cyan(
|
||||||
path.relative(path.join(__dirname, ".."), outputFile)
|
outputFile
|
||||||
)}' because not publishing`
|
)}' because not publishing`
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
fancyLog(
|
fancyLog(`Minifying '${chalk.cyan(outputFile)}'...`);
|
||||||
`Minifying '${chalk.cyan(
|
|
||||||
path.relative(path.join(__dirname, ".."), outputFile)
|
|
||||||
)}'...`
|
|
||||||
);
|
|
||||||
|
|
||||||
return bundle.write({
|
await bundle.write({
|
||||||
file: outputFile.replace(/\.js$/, ".min.js"),
|
file: outputFile.replace(/\.js$/, ".min.js"),
|
||||||
format,
|
format,
|
||||||
name,
|
name,
|
||||||
sourcemap: sourcemap,
|
sourcemap: sourcemap,
|
||||||
|
plugins: [
|
||||||
|
rollupTerser({
|
||||||
|
// workaround https://bugs.webkit.org/show_bug.cgi?id=212725
|
||||||
|
output: {
|
||||||
|
ascii_only: true,
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
],
|
||||||
});
|
});
|
||||||
});
|
})
|
||||||
});
|
|
||||||
}
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -204,7 +190,7 @@ const libBundles = [
|
|||||||
src: "packages/babel-parser",
|
src: "packages/babel-parser",
|
||||||
format: "cjs",
|
format: "cjs",
|
||||||
dest: "lib",
|
dest: "lib",
|
||||||
version: require("./packages/babel-parser/package").version,
|
version: require("./packages/babel-parser/package").version + versionSuffix,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -215,7 +201,7 @@ const standaloneBundle = [
|
|||||||
name: "Babel",
|
name: "Babel",
|
||||||
filename: "babel.js",
|
filename: "babel.js",
|
||||||
dest: "",
|
dest: "",
|
||||||
version: require("./packages/babel-core/package").version,
|
version: babelVersion,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user