Skip to content

Commit

Permalink
feat: prepack esbuild-loader
Browse files Browse the repository at this point in the history
  • Loading branch information
HomyeeKing committed Jan 3, 2025
1 parent a2c1452 commit 0f146ef
Show file tree
Hide file tree
Showing 4 changed files with 320 additions and 57 deletions.
97 changes: 49 additions & 48 deletions packages/bundles/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,103 +15,104 @@
"main": "./esm/index.js",
"type": "module",
"dependencies": {
"@swc/core": "1.3.80",
"@ice/swc-plugin-remove-export": "0.2.0",
"@ice/css-modules-hash": "0.0.10",
"@ice/pack-binding": "0.0.13",
"@ice/swc-plugin-keep-export": "0.2.0",
"@ice/swc-plugin-node-transform": "0.2.0",
"@ice/swc-plugin-remove-export": "0.2.0",
"@swc/core": "1.3.80",
"ansi-html-community": "^0.0.8",
"html-entities": "^2.3.2",
"core-js": "3.32.0",
"browserslist": "^4.21.3",
"caniuse-lite": "^1.0.30001561",
"chokidar": "3.5.3",
"compare-versions": "6.0.0-rc.1",
"core-js": "3.32.0",
"core-js-pure": "^3.8.1",
"enhanced-resolve": "5.12.0",
"error-stack-parser": "^2.0.6",
"esbuild": "^0.17.16",
"events": "3.3.0",
"fast-querystring": "1.1.2",
"html-entities": "^2.3.2",
"jest-worker": "27.5.1",
"json-parse-even-better-errors": "^3.0.0",
"less": "4.1.2",
"mime-types": "2.1.35",
"neo-async": "2.6.2",
"postcss": "8.4.31",
"sass": "1.50.0",
"react-refresh": "0.14.0",
"core-js-pure": "^3.8.1",
"error-stack-parser": "^2.0.6",
"@ice/css-modules-hash": "0.0.10",
"browserslist": "^4.21.3",
"compare-versions": "6.0.0-rc.1",
"enhanced-resolve": "5.12.0",
"fast-querystring": "1.1.2",
"json-parse-even-better-errors": "^3.0.0",
"neo-async": "2.6.2",
"sass": "1.50.0",
"terminal-link": "^2.1.1",
"watchpack": "^2.4.0",
"webpack-sources": "3.2.3",
"zod": "^3.22.3",
"zod-validation-error": "1.2.0",
"terminal-link": "^2.1.1",
"@ice/pack-binding": "0.0.13",
"mime-types": "2.1.35"
"zod-validation-error": "1.2.0"
},
"devDependencies": {
"@rspack/plugin-react-refresh": "0.5.7",
"@rspack/dev-server": "0.5.7",
"@pmmmwh/react-refresh-webpack-plugin": "0.5.10",
"@rspack/core": "0.5.7",
"@rspack/dev-server": "0.5.7",
"@rspack/plugin-react-refresh": "0.5.7",
"@types/less": "^3.0.3",
"@types/lodash": "^4.14.181",
"@types/webpack-bundle-analyzer": "^4.4.1",
"bonjour-service": "^1.0.13",
"cacache": "17.0.4",
"colorette": "^2.0.10",
"common-path-prefix": "3.0.0",
"compression": "^1.7.4",
"connect-history-api-fallback": "2.0.0",
"copy-webpack-plugin": "10.2.4",
"css-loader": "6.7.1",
"css-minimizer-webpack-plugin": "3.4.1",
"cssnano": "^5.1.7",
"default-gateway": "^6.0.3",
"es-module-lexer": "0.10.5",
"esbuild-loader": "^4.2.2",
"esbuild-register": "3.4.1",
"eslint": "^8.14.0",
"eslint-webpack-plugin": "3.1.1",
"express": "^4.19.2",
"find-up": "5.0.0",
"fork-ts-checker-webpack-plugin": "7.2.6",
"fs-extra": "^10.0.0",
"globby": "13.1.2",
"graceful-fs": "4.2.10",
"http-proxy-middleware": "^2.0.3",
"ipaddr.js": "^2.0.1",
"less-loader": "10.2.0",
"loader-utils": "^2.0.0",
"lodash": "4.17.21",
"magic-string": "0.27.0",
"mini-css-extract-plugin": "2.6.1",
"open": "^8.0.9",
"ora": "5.4.1",
"p-retry": "^4.5.0",
"portfinder": "^1.0.28",
"postcss-loader": "6.2.1",
"postcss-modules": "4.3.1",
"postcss-nested": "5.0.6",
"postcss-plugin-rpx2vw": "1.0.0",
"postcss-preset-env": "7.4.3",
"rimraf": "^3.0.2",
"sass-loader": "12.6.0",
"schema-utils": "^4.0.0",
"selfsigned": "^2.0.1",
"serve-index": "^1.9.1",
"sockjs": "^0.3.21",
"source-map": "0.8.0-beta.0",
"spdy": "^4.0.2",
"tapable": "2.2.1",
"terser": "5.14.2",
"terser-webpack-plugin": "5.3.5",
"typescript": "^4.6.4",
"trusted-cert": "1.1.3",
"typescript": "^4.6.4",
"unplugin": "1.6.0",
"webpack": "5.88.2",
"webpack-bundle-analyzer": "4.5.0",
"webpack-dev-server": "4.15.0",
"unplugin": "1.6.0",
"bonjour-service": "^1.0.13",
"colorette": "^2.0.10",
"compression": "^1.7.4",
"connect-history-api-fallback": "2.0.0",
"default-gateway": "^6.0.3",
"express": "^4.19.2",
"graceful-fs": "4.2.10",
"http-proxy-middleware": "^2.0.3",
"ipaddr.js": "^2.0.1",
"open": "^8.0.9",
"p-retry": "^4.5.0",
"portfinder": "^1.0.28",
"rimraf": "^3.0.2",
"schema-utils": "^4.0.0",
"selfsigned": "^2.0.1",
"serve-index": "^1.9.1",
"sockjs": "^0.3.21",
"spdy": "^4.0.2",
"webpack-dev-middleware": "^5.3.4",
"ws": "^8.4.2",
"globby": "13.1.2",
"@pmmmwh/react-refresh-webpack-plugin": "0.5.10",
"loader-utils": "^2.0.0",
"source-map": "0.8.0-beta.0",
"find-up": "5.0.0",
"common-path-prefix": "3.0.0"
"webpack-dev-server": "4.15.0",
"ws": "^8.4.2"
},
"publishConfig": {
"access": "public",
Expand Down
2 changes: 1 addition & 1 deletion packages/bundles/scripts/tasks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ export function filterExternals(externals: Record<string, string>, keys: string[
const tasks = [
// simple task
...['cssnano', 'tapable', 'schema-utils', 'lodash',
'less-loader', 'postcss-loader', 'sass-loader', 'css-loader',
'less-loader', 'postcss-loader', 'sass-loader', 'css-loader', 'esbuild-loader',
'postcss-preset-env', 'postcss-nested', 'postcss-modules', 'postcss-plugin-rpx2vw',
'webpack-bundle-analyzer', 'es-module-lexer', 'terser', 'trusted-cert', 'magic-string',
'eslint-webpack-plugin', 'copy-webpack-plugin', 'cacache', 'ora', 'unplugin',
Expand Down
5 changes: 3 additions & 2 deletions packages/ice/src/service/webpackServerCompiler/compiler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,15 +64,16 @@ export class WebpackServerCompiler {
{
// // Match `.js`, `.jsx`, `.ts` or `.tsx` files
test: /\.m?[jt]sx?$/,
loader: 'esbuild-loader',
loader: require.resolve('@ice/bundles/compiled/esbuild-loader'),
// available options: https://github.com/evanw/esbuild/blob/88821b7e7d46737f633120f91c65f662eace0bcf/lib/shared/types.ts#L158-L172
options: {
target: options.target,
format: options.format,
loader: 'tsx',
sourcemap: options.sourcemap,
define: options.define,
banner: options.banner,
// banner can only be string in transform mode
banner: options.banner.js,
implementation: esbuild,
},
},
Expand Down
Loading

0 comments on commit 0f146ef

Please sign in to comment.