Initial commit
This commit is contained in:
52
esbuild.ts
Executable file
52
esbuild.ts
Executable file
@ -0,0 +1,52 @@
|
||||
#!/usr/bin/env -S node -r esbin
|
||||
import esbuild from 'esbuild';
|
||||
import { resolve } from 'path';
|
||||
import { babelPlugin } from './src/babel';
|
||||
|
||||
const args = process.argv.slice(2);
|
||||
const ENV = process.env.NODE_ENV || 'development';
|
||||
const PROD = ENV === 'production';
|
||||
|
||||
async function main(entry: string, outfile: string) {
|
||||
const context = await esbuild.context({
|
||||
entryPoints: [entry],
|
||||
outfile,
|
||||
bundle: true,
|
||||
minify: PROD,
|
||||
platform: 'node',
|
||||
packages: 'external',
|
||||
sourcemap: 'linked',
|
||||
plugins: [
|
||||
babelPlugin,
|
||||
{
|
||||
name: 'alias',
|
||||
setup(build) {
|
||||
build.onResolve({ filter: /^jsx-ast-utils$/ }, () => ({
|
||||
path: resolve('./jsx-ast-utils/src/index.js'),
|
||||
}));
|
||||
build.onResolve({ filter: /^jsx-ast-utils\/.+$/ }, ({ path }) => ({
|
||||
path:
|
||||
resolve('./jsx-ast-utils/', path.slice('jsx-ast-utils/'.length)) + '.js',
|
||||
}));
|
||||
},
|
||||
},
|
||||
],
|
||||
define: {},
|
||||
banner: {
|
||||
js: '/* eslint-disable */',
|
||||
},
|
||||
});
|
||||
|
||||
await context.rebuild();
|
||||
|
||||
if (args.includes('-w') || args.includes('--watch')) {
|
||||
await context.watch();
|
||||
} else {
|
||||
await context.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
main('./eslint-plugin-react/index.js', './dist/react/index.js');
|
||||
main('./eslint-plugin-import/src/index.js', './dist/import/index.js');
|
||||
main('./eslint-plugin-jsx-a11y/src/index.js', './dist/jsx-a11y/index.js');
|
||||
main('./src/ensureRedirect.ts', './dist/ensureRedirect.js');
|
Reference in New Issue
Block a user