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:
Huáng Jùnliàng 2020-09-26 15:50:34 -04:00 committed by GitHub
parent 434b65bc2a
commit 3d5da4c2b9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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,
}, },
]; ];