improve rollup build

This commit is contained in:
Rene Haas
2022-08-21 10:32:20 +02:00
parent 52c3f83e21
commit 4016920c9b
8 changed files with 54 additions and 84 deletions
+3 -4
View File
@@ -10,8 +10,8 @@ const rollupPluginIgnoreImport = require('rollup-plugin-ignore-import');
const rollupPluginCommonjs = require('@rollup/plugin-commonjs');
const rollupPluginAlias = require('@rollup/plugin-alias');
const rollupPluginTs = require('rollup-plugin-typescript2');
const { default: rollupPluginEsBuild } = require('rollup-plugin-esbuild');
const rollupPluginLicense = require('rollup-plugin-license');
const rollupPluginEsBuild = require('../plugins/esbuild');
const babelConfigEs5 = require('./babel.config.es5');
const babelConfigEs6 = require('./babel.config.es2015');
@@ -59,10 +59,9 @@ module.exports = {
});
}
},
rollupEsBuild: (sourceMap) =>
rollupEsBuild: (sourcemap) =>
rollupPluginEsBuild({
sourceMap,
include: /\.[jt]sx?$/,
sourcemap,
target: 'es6',
}),
rollupBabel: (resolve, es6) =>
@@ -7,10 +7,10 @@ const rollupPluginServe = require('rollup-plugin-serve');
const rollupPluginLivereload = require('rollup-plugin-livereload');
const resolve = require('@~local/config/resolve');
const rollupPluginHtml = require('./rollup.pluginHtml');
const rollupPluginHtml = require('../plugins/html');
const rollupAdditionalWatchFiles = require('../plugins/additionalWatchFiles');
const rollupIstanbul = require('../plugins/istanbul');
const createRollupConfig = require('../createRollupConfig');
const rollupAdditionalWatchFiles = require('./rollup.pluginAdditionalWatchFiles');
const rollupIstanbul = require('./rollup.pluginIstanbul');
const portRange = {
min: 20000,
+46
View File
@@ -0,0 +1,46 @@
const { extname } = require('path');
const { transform } = require('esbuild');
const { createFilter } = require('@rollup/pluginutils');
const defaultLoader = {
'.js': 'js',
'.jsx': 'jsx',
'.ts': 'ts',
'.tsx': 'tsx',
};
module.exports = ({ include, exclude, ...esbuildOptions } = {}) => {
const extensions = Object.keys(defaultLoader);
const INCLUDE_REGEXP = new RegExp(`\\.(${extensions.map((ext) => ext.slice(1)).join('|')})$`);
const EXCLUDE_REGEXP = /node_modules/;
const filter = createFilter(include || INCLUDE_REGEXP, exclude || EXCLUDE_REGEXP);
return {
name: 'esbuild',
async transform(code, id) {
if (!filter(id)) {
return null;
}
const ext = extname(id);
const loader = defaultLoader[ext];
if (!loader) {
return null;
}
const result = await transform(code, {
sourcefile: id,
loader,
...esbuildOptions,
});
return (
result.code && {
code: result.code,
map: result.map || null,
}
);
},
};
};
+1 -75
View File
@@ -44,6 +44,7 @@
"eslint-plugin-react": "^7.30.0",
"eslint-plugin-react-hooks": "^4.6.0",
"glob": "^7.1.6",
"istanbul-lib-instrument": "^5.2.0",
"jest": "^28.1.3",
"jest-environment-jsdom": "^28.1.3",
"nyc": "^15.1.0",
@@ -56,7 +57,6 @@
"prettier": "^2.6.2",
"rollup": "^2.75.5",
"rollup-plugin-dts": "^4.2.2",
"rollup-plugin-esbuild": "^4.9.1",
"rollup-plugin-ignore-import": "^1.3.2",
"rollup-plugin-license": "^2.8.1",
"rollup-plugin-livereload": "^2.0.0",
@@ -70,7 +70,6 @@
"should": "^13.2.3",
"tslib": "^2.4.0",
"typescript": "^4.7.4",
"v8-to-istanbul": "^9.0.1",
"webpack": "^5.74.0"
}
},
@@ -7974,15 +7973,6 @@
"url": "https://github.com/chalk/supports-color?sponsor=1"
}
},
"node_modules/joycon": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz",
"integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==",
"dev": true,
"engines": {
"node": ">=10"
}
},
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -10154,39 +10144,6 @@
"node": ">=12"
}
},
"node_modules/rollup-plugin-esbuild": {
"version": "4.9.1",
"resolved": "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-4.9.1.tgz",
"integrity": "sha512-qn/x7Wz9p3Xnva99qcb+nopH0d2VJwVnsxJTGEg+Sh2Z3tqQl33MhOwzekVo1YTKgv+yAmosjcBRJygMfGrtLw==",
"dev": true,
"dependencies": {
"@rollup/pluginutils": "^4.1.1",
"debug": "^4.3.3",
"es-module-lexer": "^0.9.3",
"joycon": "^3.0.1",
"jsonc-parser": "^3.0.0"
},
"engines": {
"node": ">=12"
},
"peerDependencies": {
"esbuild": ">=0.10.1",
"rollup": "^1.20.0 || ^2.0.0"
}
},
"node_modules/rollup-plugin-esbuild/node_modules/@rollup/pluginutils": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz",
"integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==",
"dev": true,
"dependencies": {
"estree-walker": "^2.0.1",
"picomatch": "^2.2.2"
},
"engines": {
"node": ">= 8.0.0"
}
},
"node_modules/rollup-plugin-ignore-import": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/rollup-plugin-ignore-import/-/rollup-plugin-ignore-import-1.3.2.tgz",
@@ -17557,12 +17514,6 @@
}
}
},
"joycon": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz",
"integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==",
"dev": true
},
"js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -19107,31 +19058,6 @@
}
}
},
"rollup-plugin-esbuild": {
"version": "4.9.1",
"resolved": "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-4.9.1.tgz",
"integrity": "sha512-qn/x7Wz9p3Xnva99qcb+nopH0d2VJwVnsxJTGEg+Sh2Z3tqQl33MhOwzekVo1YTKgv+yAmosjcBRJygMfGrtLw==",
"dev": true,
"requires": {
"@rollup/pluginutils": "^4.1.1",
"debug": "^4.3.3",
"es-module-lexer": "^0.9.3",
"joycon": "^3.0.1",
"jsonc-parser": "^3.0.0"
},
"dependencies": {
"@rollup/pluginutils": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz",
"integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==",
"dev": true,
"requires": {
"estree-walker": "^2.0.1",
"picomatch": "^2.2.2"
}
}
}
},
"rollup-plugin-ignore-import": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/rollup-plugin-ignore-import/-/rollup-plugin-ignore-import-1.3.2.tgz",
+1 -2
View File
@@ -40,6 +40,7 @@
"eslint-plugin-react": "^7.30.0",
"eslint-plugin-react-hooks": "^4.6.0",
"glob": "^7.1.6",
"istanbul-lib-instrument": "^5.2.0",
"jest": "^28.1.3",
"jest-environment-jsdom": "^28.1.3",
"nyc": "^15.1.0",
@@ -52,7 +53,6 @@
"prettier": "^2.6.2",
"rollup": "^2.75.5",
"rollup-plugin-dts": "^4.2.2",
"rollup-plugin-esbuild": "^4.9.1",
"rollup-plugin-ignore-import": "^1.3.2",
"rollup-plugin-license": "^2.8.1",
"rollup-plugin-livereload": "^2.0.0",
@@ -66,7 +66,6 @@
"should": "^13.2.3",
"tslib": "^2.4.0",
"typescript": "^4.7.4",
"v8-to-istanbul": "^9.0.1",
"webpack": "^5.74.0"
},
"scripts": {