esbuild-loader
Advanced tools
Comparing version 2.20.0 to 2.21.0
@@ -6,1 +6,2 @@ import esbuildLoader from './loader'; | ||
export { ESBuildPlugin, ESBuildMinifyPlugin }; | ||
export * from './interfaces'; |
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
var __exportStar = (this && this.__exportStar) || function(m, exports) { | ||
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); | ||
}; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
@@ -13,1 +27,2 @@ return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
exports.default = loader_1.default; | ||
__exportStar(require("./interfaces"), exports); |
import { transform, TransformOptions } from 'esbuild'; | ||
declare type Filter = string | RegExp; | ||
declare type Implementation = { | ||
type Filter = string | RegExp; | ||
type Implementation = { | ||
transform: typeof transform; | ||
}; | ||
declare type Except<ObjectType, Properties> = { | ||
type Except<ObjectType, Properties> = { | ||
[Key in keyof ObjectType as (Key extends Properties ? never : Key)]: ObjectType[Key]; | ||
}; | ||
declare type LoaderOptions = Except<TransformOptions, 'sourcemap' | 'sourcefile'> & { | ||
type LoaderOptions = Except<TransformOptions, 'sourcemap' | 'sourcefile'> & { | ||
/** Pass a custom esbuild implementation */ | ||
implementation?: Implementation; | ||
}; | ||
declare type MinifyPluginOptions = Except<TransformOptions, 'sourcefile'> & { | ||
type MinifyPluginOptions = Except<TransformOptions, 'sourcefile'> & { | ||
include?: Filter | Filter[]; | ||
@@ -15,0 +15,0 @@ exclude?: Filter | Filter[]; |
@@ -56,3 +56,9 @@ "use strict"; | ||
async transformAssets(compilation) { | ||
const { options: { devtool } } = compilation.compiler; | ||
var _a; | ||
const { compiler } = compilation; | ||
const { options: { devtool } } = compiler; | ||
// @ts-expect-error Only exists on Webpack 5 | ||
const sources = (_a = compiler.webpack) === null || _a === void 0 ? void 0 : _a.sources; | ||
const SourceMapSource = (sources ? sources.SourceMapSource : webpack_sources_1.SourceMapSource); | ||
const RawSource = (sources ? sources.RawSource : webpack_sources_1.RawSource); | ||
const sourcemap = ( | ||
@@ -74,3 +80,15 @@ // TODO: drop support for esbuild sourcemap in future so it all goes through WP API | ||
const assetIsCss = isCssFile.test(asset.name); | ||
const { source, map } = asset.source.sourceAndMap(); | ||
let source; | ||
let map = null; | ||
if (asset.source.sourceAndMap) { | ||
const sourceAndMap = asset.source.sourceAndMap(); | ||
source = sourceAndMap.source; | ||
map = sourceAndMap.map; | ||
} | ||
else { | ||
source = asset.source.source(); | ||
if (asset.source.map) { | ||
map = asset.source.map(); | ||
} | ||
} | ||
const sourceAsString = source.toString(); | ||
@@ -85,5 +103,8 @@ const result = await this.transform(sourceAsString, { | ||
}); | ||
if (result.legalComments) { | ||
compilation.emitAsset(`${asset.name}.LEGAL.txt`, new RawSource(result.legalComments)); | ||
} | ||
compilation.updateAsset(asset.name, (sourcemap | ||
? new webpack_sources_1.SourceMapSource(result.code, asset.name, result.map, sourceAsString, map, true) | ||
: new webpack_sources_1.RawSource(result.code)), { | ||
? new SourceMapSource(result.code, asset.name, result.map, sourceAsString, map, true) | ||
: new RawSource(result.code)), { | ||
...asset.info, | ||
@@ -90,0 +111,0 @@ minimized: true, |
{ | ||
"name": "esbuild-loader", | ||
"version": "2.20.0", | ||
"version": "2.21.0", | ||
"description": "⚡️ Speed up your Webpack build with esbuild", | ||
@@ -24,7 +24,14 @@ "keywords": [ | ||
"types": "./dist/index.d.ts", | ||
"imports": { | ||
"#esbuild-loader": { | ||
"types": "./src/index.ts", | ||
"development": "./src/index.ts", | ||
"default": "./dist/index.js" | ||
} | ||
}, | ||
"scripts": { | ||
"build": "tsc", | ||
"pretest": "npm run build", | ||
"test": "jest --coverage", | ||
"lint": "eslint ." | ||
"test": "tsx tests", | ||
"dev": "tsx watch --conditions=development tests", | ||
"lint": "eslint --cache ." | ||
}, | ||
@@ -35,3 +42,3 @@ "peerDependencies": { | ||
"dependencies": { | ||
"esbuild": "^0.15.6", | ||
"esbuild": "^0.16.17", | ||
"joycon": "^3.0.1", | ||
@@ -41,20 +48,20 @@ "json5": "^2.2.0", | ||
"tapable": "^2.2.0", | ||
"webpack-sources": "^2.2.0" | ||
"webpack-sources": "^1.4.3" | ||
}, | ||
"devDependencies": { | ||
"@pvtnbr/eslint-config": "^0.26.2", | ||
"@types/jest": "^27.0.3", | ||
"@pvtnbr/eslint-config": "^0.33.0", | ||
"@types/loader-utils": "^2.0.3", | ||
"@types/node": "^18.0.4", | ||
"@types/webpack": "^4.41.32", | ||
"@types/webpack-sources": "^3.2.0", | ||
"css-loader": "^5.2.0", | ||
"eslint": "^8.19.0", | ||
"jest": "^27.4.4", | ||
"memfs": "^3.4.0", | ||
"mini-css-extract-plugin": "^1.4.0", | ||
"typescript": "^4.7.4", | ||
"unionfs": "^4.4.0", | ||
"@types/mini-css-extract-plugin": "^2.5.1", | ||
"@types/node": "^18.11.18", | ||
"@types/webpack": "^4.41.33", | ||
"@types/webpack-sources": "^0.1.9", | ||
"css-loader": "^5.2.7", | ||
"eslint": "^8.31.0", | ||
"manten": "^0.6.0", | ||
"memfs": "^3.4.13", | ||
"mini-css-extract-plugin": "^1.6.2", | ||
"tsx": "^3.12.2", | ||
"typescript": "^4.9.4", | ||
"webpack": "^4.44.2", | ||
"webpack-test-utils": "^1.1.0", | ||
"webpack-test-utils": "^2.1.0", | ||
"webpack5": "npm:webpack@^5.0.0" | ||
@@ -61,0 +68,0 @@ }, |
@@ -101,2 +101,8 @@ # esbuild-loader <a href="https://npm.im/esbuild-loader"><img src="https://badgen.net/npm/v/esbuild-loader"></a> <a href="https://npm.im/esbuild-loader"><img src="https://badgen.net/npm/dm/esbuild-loader"></a> <a href="https://packagephobia.now.sh/result?p=esbuild-loader"><img src="https://packagephobia.now.sh/badge?p=esbuild-loader"></a> | ||
#### `tsconfig.json` Paths | ||
Use [tsconfig-paths-webpack-plugin](https://github.com/dividab/tsconfig-paths-webpack-plugin) to add support for `tsconfig.json#paths`. | ||
Since esbuild-loader only uses esbuild to transform code, it cannot help Webpack with resolving [tsconfig.json#paths](https://www.typescriptlang.org/tsconfig/paths.html). | ||
### JS Minification (eg. Terser) | ||
@@ -340,3 +346,3 @@ You can replace JS minifiers like Terser or UglifyJs. Checkout the [benchmarks](https://github.com/privatenumber/minification-benchmarks) to see how much faster esbuild is. The `target` option tells esbuild that it can use newer JS syntax to perform better minification. | ||
#### legalComments | ||
Type: `'none' | 'inline' | 'eof'` | ||
Type: `'none' | 'inline' | 'eof' | 'external'` | ||
@@ -420,9 +426,11 @@ Default: `'inline'` | ||
## 🌱 Other Webpack plugins | ||
## 💞 Related | ||
#### [tsx](https://github.com/esbuild-kit/tsx) | ||
Node.js enhanced with esbuild to run TypeScript and ESM. | ||
#### [instant-mocha](https://github.com/privatenumber/instant-mocha) | ||
Webpack-integrated Mocha test-runner with Webpack 5 support. | ||
#### [webpack-localize-assets-plugin](https://github.com/privatenumber/webpack-localize-assets-plugin) | ||
Localize/i18nalize your Webpack build. Optimized for multiple locales! |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
29564
258
434
+ Added@esbuild/android-arm@0.16.17(transitive)
+ Added@esbuild/android-arm64@0.16.17(transitive)
+ Added@esbuild/android-x64@0.16.17(transitive)
+ Added@esbuild/darwin-arm64@0.16.17(transitive)
+ Added@esbuild/darwin-x64@0.16.17(transitive)
+ Added@esbuild/freebsd-arm64@0.16.17(transitive)
+ Added@esbuild/freebsd-x64@0.16.17(transitive)
+ Added@esbuild/linux-arm@0.16.17(transitive)
+ Added@esbuild/linux-arm64@0.16.17(transitive)
+ Added@esbuild/linux-ia32@0.16.17(transitive)
+ Added@esbuild/linux-loong64@0.16.17(transitive)
+ Added@esbuild/linux-mips64el@0.16.17(transitive)
+ Added@esbuild/linux-ppc64@0.16.17(transitive)
+ Added@esbuild/linux-riscv64@0.16.17(transitive)
+ Added@esbuild/linux-s390x@0.16.17(transitive)
+ Added@esbuild/linux-x64@0.16.17(transitive)
+ Added@esbuild/netbsd-x64@0.16.17(transitive)
+ Added@esbuild/openbsd-x64@0.16.17(transitive)
+ Added@esbuild/sunos-x64@0.16.17(transitive)
+ Added@esbuild/win32-arm64@0.16.17(transitive)
+ Added@esbuild/win32-ia32@0.16.17(transitive)
+ Added@esbuild/win32-x64@0.16.17(transitive)
+ Added@types/node@22.8.6(transitive)
+ Addedcaniuse-lite@1.0.30001676(transitive)
+ Addedelectron-to-chromium@1.5.50(transitive)
+ Addedesbuild@0.16.17(transitive)
+ Addedwebpack-sources@1.4.3(transitive)
- Removed@esbuild/android-arm@0.15.18(transitive)
- Removed@esbuild/linux-loong64@0.15.18(transitive)
- Removed@types/node@22.9.0(transitive)
- Removedcaniuse-lite@1.0.30001677(transitive)
- Removedelectron-to-chromium@1.5.52(transitive)
- Removedesbuild@0.15.18(transitive)
- Removedesbuild-android-64@0.15.18(transitive)
- Removedesbuild-android-arm64@0.15.18(transitive)
- Removedesbuild-darwin-64@0.15.18(transitive)
- Removedesbuild-darwin-arm64@0.15.18(transitive)
- Removedesbuild-freebsd-64@0.15.18(transitive)
- Removedesbuild-freebsd-arm64@0.15.18(transitive)
- Removedesbuild-linux-32@0.15.18(transitive)
- Removedesbuild-linux-64@0.15.18(transitive)
- Removedesbuild-linux-arm@0.15.18(transitive)
- Removedesbuild-linux-arm64@0.15.18(transitive)
- Removedesbuild-linux-mips64le@0.15.18(transitive)
- Removedesbuild-linux-ppc64le@0.15.18(transitive)
- Removedesbuild-linux-riscv64@0.15.18(transitive)
- Removedesbuild-linux-s390x@0.15.18(transitive)
- Removedesbuild-netbsd-64@0.15.18(transitive)
- Removedesbuild-openbsd-64@0.15.18(transitive)
- Removedesbuild-sunos-64@0.15.18(transitive)
- Removedesbuild-windows-32@0.15.18(transitive)
- Removedesbuild-windows-64@0.15.18(transitive)
- Removedesbuild-windows-arm64@0.15.18(transitive)
- Removedwebpack-sources@2.3.1(transitive)
Updatedesbuild@^0.16.17
Updatedwebpack-sources@^1.4.3