Update
This commit is contained in:
@ -6,6 +6,7 @@ import esbuild from 'esbuild';
|
||||
import type { Plugin } from 'esbuild';
|
||||
import { memoize } from 'lodash';
|
||||
import { gray, green } from 'picocolors';
|
||||
import { minify_sync } from 'terser';
|
||||
import { dependencies } from '../dist/package.json';
|
||||
import { buildLocalRules } from './build-local-rules';
|
||||
import { dts } from './dts';
|
||||
@ -65,15 +66,15 @@ if (process.env.DEBUG) {
|
||||
});
|
||||
}
|
||||
|
||||
function bundle(
|
||||
async function bundle(
|
||||
entry: string,
|
||||
outfile = entry
|
||||
.replace('./packages/', './dist/')
|
||||
.replace('src/', '')
|
||||
.replace('.ts', '.js'),
|
||||
options?: esbuild.BuildOptions,
|
||||
options?: esbuild.BuildOptions & { treeShaking?: boolean },
|
||||
) {
|
||||
return esbuild.build({
|
||||
const output = await esbuild.build({
|
||||
entryPoints: [entry],
|
||||
outfile,
|
||||
bundle: true,
|
||||
@ -90,6 +91,30 @@ function bundle(
|
||||
},
|
||||
...options,
|
||||
});
|
||||
|
||||
if (options?.treeShaking) {
|
||||
const [text, setText] = await useText(outfile);
|
||||
const minified = minify_sync(text, {
|
||||
module: true,
|
||||
compress: {
|
||||
conditionals: true,
|
||||
dead_code: true,
|
||||
defaults: false,
|
||||
evaluate: true,
|
||||
passes: 3,
|
||||
pure_new: true,
|
||||
side_effects: true,
|
||||
unused: true,
|
||||
},
|
||||
mangle: false,
|
||||
format: {
|
||||
comments: true,
|
||||
},
|
||||
});
|
||||
setText(minified.code!);
|
||||
}
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
async function editPackageJson() {
|
||||
@ -134,6 +159,9 @@ async function main() {
|
||||
bundleType('./src/prettier.ts', './dist/prettier.d.ts');
|
||||
bundleType('./src/types.ts', './dist/types.d.ts');
|
||||
|
||||
const unminify = { minify: false };
|
||||
const treeShake = { treeShaking: true, minify: false };
|
||||
|
||||
console.log('Building packages...');
|
||||
await Promise.all([
|
||||
bundle('./packages/eslint-plugin-jsx-a11y/src/index.js'),
|
||||
@ -142,10 +170,10 @@ async function main() {
|
||||
bundle('./packages/eslint-import-resolver-typescript/src/index.ts'),
|
||||
bundle('./src/rules/index.ts', './dist/eslint-plugin-rules/index.js'),
|
||||
bundle('./src/local/index.ts', './dist/eslint-plugin-local/index.js'),
|
||||
bundle('./src/index.ts', './dist/index.js'),
|
||||
bundle('./src/types.ts', './dist/types.js'),
|
||||
bundle('./src/prettier.ts', './dist/prettier.js'),
|
||||
bundle('./src/install.ts', './dist/install.js', { minify: false }),
|
||||
bundle('./src/index.ts', './dist/index.js', unminify),
|
||||
bundle('./src/types.ts', './dist/types.js', unminify),
|
||||
bundle('./src/prettier.ts', './dist/prettier.js', unminify),
|
||||
bundle('./src/install.ts', './dist/install.js', treeShake),
|
||||
editPackageJson(),
|
||||
]);
|
||||
|
||||
|
Reference in New Issue
Block a user