@ms-cloudpack/bundler-rspack 0.2.16 → 0.2.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/getRspackConfiguration.d.ts.map +1 -1
- package/lib/getRspackConfiguration.js +4 -0
- package/lib/getRspackConfiguration.js.map +1 -1
- package/lib/normalizeRspackOutput.d.ts +2 -2
- package/lib/normalizeRspackOutput.d.ts.map +1 -1
- package/lib/normalizeRspackOutput.js +9 -10
- package/lib/normalizeRspackOutput.js.map +1 -1
- package/lib/rspack.js +1 -1
- package/lib/rspack.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getRspackConfiguration.d.ts","sourceRoot":"","sources":["../src/getRspackConfiguration.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAA+C,MAAM,cAAc,CAAC;AAM/F,wBAAgB,sBAAsB,CACpC,MAAM,EAAE;IACN,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,YAAY,CAAC,CAAC;IACvD,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,IAAI,CAAC,mBAAmB,EAAE,YAAY,CAAC,EAC3C,OAAO,EAAE,aAAa,GACrB,aAAa,
|
|
1
|
+
{"version":3,"file":"getRspackConfiguration.d.ts","sourceRoot":"","sources":["../src/getRspackConfiguration.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAA+C,MAAM,cAAc,CAAC;AAM/F,wBAAgB,sBAAsB,CACpC,MAAM,EAAE;IACN,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,YAAY,CAAC,CAAC;IACvD,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,IAAI,CAAC,mBAAmB,EAAE,YAAY,CAAC,EAC3C,OAAO,EAAE,aAAa,GACrB,aAAa,CAgMf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getRspackConfiguration.js","sourceRoot":"","sources":["../src/getRspackConfiguration.ts"],"names":[],"mappings":"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","sourcesContent":["import { getSwcConfig, shouldExternalizePackage } from '@ms-cloudpack/bundler-utilities';\nimport type { BundleContext, BundleOptions } from '@ms-cloudpack/common-types';\nimport type { WriteESMStubsResult } from '@ms-cloudpack/esm-stub-utilities';\nimport type { Configuration, ExternalItemFunctionData, ExternalItemValue } from '@rspack/core';\nimport rspack from '@rspack/core';\nimport semver from 'semver';\nimport { merge } from 'webpack-merge';\nimport { getPathsOfModules } from './getPathsOfModules.js';\n\nexport function getRspackConfiguration(\n params: {\n options: Omit<BundleOptions, 'entries' | 'outputPath'>;\n outputPath: string;\n } & Pick<WriteESMStubsResult, 'newEntries'>,\n context: BundleContext,\n): Configuration {\n const { options, outputPath, newEntries } = params;\n const { unsafeDisableInlineSvg: _, ...bundlerOptions } = options.bundlerOptions || {};\n\n const isLibraryMode = context.config.mode === 'library';\n\n const swcConfig = getSwcConfig({ packagePath: options.inputPath, sourcemap: options.sourcemap });\n\n const config: Configuration = {\n mode: options.minify ? 'production' : 'development',\n // For Rspack, it looks like this following is still needed as unit tests fail without removing the './'.\n // Webpack (at least older versions) expects entry keys without a leading `./`.\n // (The leading `./` seems to be okay with the latest version, but in older versions, it appears\n // to cause the runtime chunk runtime.js to be generated with an incorrect relative path?)\n entry: Object.fromEntries(Object.entries(newEntries).map(([key, value]) => [key.replace(/^\\.\\//, ''), value])),\n context: options.inputPath,\n resolve: {\n extensions: ['.ts', '.tsx', '.mjs', '.js', '.jsx', '.json'],\n extensionAlias: {\n '.js': ['.ts', '.js', '.tsx', '.jsx'],\n '.mjs': ['.mts', '.mjs'],\n },\n },\n resolveLoader: {\n modules: [\n // Resolve loaders from the package's node_modules\n 'node_modules',\n\n // Cloudpack provided loaders\n ...getPathsOfModules(['css-loader', 'style-loader', 'sass-loader']),\n ],\n },\n externals: isLibraryMode\n ? // These types can't be inferred due to use of zod types (which may be slightly incorrect too,\n // since they don't allow returning undefined from the async version).\n // Issue: https://github.com/web-infra-dev/rspack/issues/7979\n // There's discussion here of moving away from zod types: https://github.com/web-infra-dev/rspack/issues/4241\n // eslint-disable-next-line @typescript-eslint/require-await -- API signature uses a promise\n async (ctx: ExternalItemFunctionData): Promise<ExternalItemValue | undefined> => {\n if (\n ctx.request &&\n !ctx.request.includes('!') && // webpack loader\n shouldExternalizePackage({\n id: ctx.request,\n inlined: options.inlined,\n external: options.external,\n shouldInlineNodeBuiltins: false,\n })\n ) {\n return ctx.request;\n }\n }\n : [],\n target: ['web', 'es2020'],\n //plugins: [new rspack.CssExtractRspackPlugin({})],\n module: {\n rules: [\n {\n oneOf: [\n // Rule for global CSS files\n {\n test: /\\.global\\.css$/,\n use: [\n 'style-loader',\n {\n loader: 'css-loader',\n options: {\n modules: {\n localIdentName: '[local]', // Use the local name for global CSS\n },\n },\n },\n ],\n },\n // Rule for CSS Modules files\n {\n test: /\\.module\\.css$/,\n use: [\n 'style-loader',\n {\n loader: 'css-loader',\n options: {\n modules: true, // Enable CSS Modules\n },\n },\n ],\n },\n // Rule for regular CSS files\n {\n test: /\\.css$/,\n exclude: /\\.module\\.css$/, // Exclude CSS Modules files\n use: [\n 'style-loader',\n 'css-loader', // Use css-loader without CSS Modules for regular CSS\n ],\n },\n ],\n },\n {\n test: /\\.json$/,\n type: 'json',\n sideEffects: false,\n },\n {\n test: /\\.ejs$/,\n loader: 'ejs-loader',\n options: {\n variable: 'data',\n esModule: true,\n },\n resolve: {\n fullySpecified: false,\n },\n },\n {\n // transform internal jsx files\n test: /\\.[cm]?jsx$/,\n loader: 'builtin:swc-loader',\n exclude: [/node_modules/],\n options: swcConfig.js,\n type: 'javascript/auto',\n },\n {\n // transform internal ts files\n test: /\\.[cm]?tsx?$/,\n loader: 'builtin:swc-loader',\n exclude: [/node_modules/],\n options: swcConfig.ts,\n type: 'javascript/auto',\n },\n {\n test: /\\.s[ac]ss$/i,\n use: ['style-loader', 'css-loader', 'sass-loader'],\n },\n {\n test: /\\.worker\\.js$/,\n use: { loader: 'worker-rspack-loader' },\n },\n ],\n },\n output: {\n library: {\n type: 'module',\n },\n chunkFormat: 'module',\n chunkLoading: 'import',\n path: outputPath,\n module: true,\n filename: '[name].js',\n chunkFilename: '[id].chunk.js',\n },\n experiments: {\n outputModule: true,\n css: false,\n },\n devtool: options.sourcemap ? (isLibraryMode ? 'cheap-module-source-map' : 'source-map') : false,\n optimization: {\n runtimeChunk: 'single',\n minimize: options.minify,\n mangleExports: false,\n splitChunks: {\n // Prevents exposing path info when creating names for parts splitted by maxSize.\n hidePathInfo: true,\n\n // Figure out which exports are used by modules to mangle export names, omit unused\n // exports and generate more efficient code.\n // This option was added in 1.0.0-beta.4\n ...(semver.gte(rspack.rspackVersion, '1.0.0-beta.4') && { usedExports: !isLibraryMode }),\n\n chunks: 'all',\n\n //name: '[id].chunk', //TODO: is this needed?\n\n // Production chunks should be at least 1000 bytes to prevent large numbers of file requests\n minSize: isLibraryMode ? 0 : 1000,\n\n cacheGroups: {\n defaultVendors: false,\n },\n },\n },\n };\n\n if (Object.keys(bundlerOptions).length) {\n return merge(config, bundlerOptions);\n }\n\n return config;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"getRspackConfiguration.js","sourceRoot":"","sources":["../src/getRspackConfiguration.ts"],"names":[],"mappings":"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","sourcesContent":["import { getSwcConfig, shouldExternalizePackage } from '@ms-cloudpack/bundler-utilities';\nimport type { BundleContext, BundleOptions } from '@ms-cloudpack/common-types';\nimport type { WriteESMStubsResult } from '@ms-cloudpack/esm-stub-utilities';\nimport type { Configuration, ExternalItemFunctionData, ExternalItemValue } from '@rspack/core';\nimport rspack from '@rspack/core';\nimport semver from 'semver';\nimport { merge } from 'webpack-merge';\nimport { getPathsOfModules } from './getPathsOfModules.js';\n\nexport function getRspackConfiguration(\n params: {\n options: Omit<BundleOptions, 'entries' | 'outputPath'>;\n outputPath: string;\n } & Pick<WriteESMStubsResult, 'newEntries'>,\n context: BundleContext,\n): Configuration {\n const { options, outputPath, newEntries } = params;\n const { unsafeDisableInlineSvg: _, ...bundlerOptions } = options.bundlerOptions || {};\n\n const isLibraryMode = context.config.mode === 'library';\n\n const swcConfig = getSwcConfig({ packagePath: options.inputPath, sourcemap: options.sourcemap });\n\n const config: Configuration = {\n mode: options.minify ? 'production' : 'development',\n // For Rspack, it looks like this following is still needed as unit tests fail without removing the './'.\n // Webpack (at least older versions) expects entry keys without a leading `./`.\n // (The leading `./` seems to be okay with the latest version, but in older versions, it appears\n // to cause the runtime chunk runtime.js to be generated with an incorrect relative path?)\n entry: Object.fromEntries(Object.entries(newEntries).map(([key, value]) => [key.replace(/^\\.\\//, ''), value])),\n context: options.inputPath,\n resolve: {\n extensions: ['.ts', '.tsx', '.mjs', '.js', '.jsx', '.json'],\n extensionAlias: {\n '.js': ['.ts', '.js', '.tsx', '.jsx'],\n '.mjs': ['.mts', '.mjs'],\n },\n },\n resolveLoader: {\n modules: [\n // Resolve loaders from the package's node_modules\n 'node_modules',\n\n // Cloudpack provided loaders\n ...getPathsOfModules(['css-loader', 'style-loader', 'sass-loader']),\n ],\n },\n externals: isLibraryMode\n ? // These types can't be inferred due to use of zod types (which may be slightly incorrect too,\n // since they don't allow returning undefined from the async version).\n // Issue: https://github.com/web-infra-dev/rspack/issues/7979\n // There's discussion here of moving away from zod types: https://github.com/web-infra-dev/rspack/issues/4241\n // eslint-disable-next-line @typescript-eslint/require-await -- API signature uses a promise\n async (ctx: ExternalItemFunctionData): Promise<ExternalItemValue | undefined> => {\n if (\n ctx.request &&\n !ctx.request.includes('!') && // webpack loader\n shouldExternalizePackage({\n id: ctx.request,\n inlined: options.inlined,\n external: options.external,\n shouldInlineNodeBuiltins: false,\n })\n ) {\n return ctx.request;\n }\n }\n : [],\n target: ['web', 'es2020'],\n //plugins: [new rspack.CssExtractRspackPlugin({})],\n module: {\n rules: [\n {\n oneOf: [\n // Rule for global CSS files\n {\n test: /\\.global\\.css$/,\n use: [\n 'style-loader',\n {\n loader: 'css-loader',\n options: {\n modules: {\n localIdentName: '[local]', // Use the local name for global CSS\n },\n },\n },\n ],\n },\n // Rule for CSS Modules files\n {\n test: /\\.module\\.css$/,\n use: [\n 'style-loader',\n {\n loader: 'css-loader',\n options: {\n modules: true, // Enable CSS Modules\n },\n },\n ],\n },\n // Rule for regular CSS files\n {\n test: /\\.css$/,\n exclude: /\\.module\\.css$/, // Exclude CSS Modules files\n use: [\n 'style-loader',\n 'css-loader', // Use css-loader without CSS Modules for regular CSS\n ],\n },\n ],\n },\n {\n test: /\\.json$/,\n type: 'json',\n sideEffects: false,\n },\n {\n test: /\\.ejs$/,\n loader: 'ejs-loader',\n options: {\n variable: 'data',\n esModule: true,\n },\n resolve: {\n fullySpecified: false,\n },\n },\n {\n // transform internal jsx files\n test: /\\.[cm]?jsx$/,\n loader: 'builtin:swc-loader',\n exclude: [/node_modules/],\n options: swcConfig.js,\n type: 'javascript/auto',\n },\n {\n // transform internal ts files\n test: /\\.[cm]?tsx?$/,\n loader: 'builtin:swc-loader',\n exclude: [/node_modules/],\n options: swcConfig.ts,\n type: 'javascript/auto',\n },\n {\n test: /\\.s[ac]ss$/i,\n use: ['style-loader', 'css-loader', 'sass-loader'],\n },\n {\n test: /\\.worker\\.js$/,\n use: { loader: 'worker-rspack-loader' },\n },\n {\n test: /\\.wasm$/i,\n type: 'asset/resource',\n },\n ],\n },\n output: {\n library: {\n type: 'module',\n },\n chunkFormat: 'module',\n chunkLoading: 'import',\n path: outputPath,\n module: true,\n filename: '[name].js',\n chunkFilename: '[id].chunk.js',\n },\n experiments: {\n outputModule: true,\n css: false,\n },\n devtool: options.sourcemap ? (isLibraryMode ? 'cheap-module-source-map' : 'source-map') : false,\n optimization: {\n runtimeChunk: 'single',\n minimize: options.minify,\n mangleExports: false,\n splitChunks: {\n // Prevents exposing path info when creating names for parts splitted by maxSize.\n hidePathInfo: true,\n\n // Figure out which exports are used by modules to mangle export names, omit unused\n // exports and generate more efficient code.\n // This option was added in 1.0.0-beta.4\n ...(semver.gte(rspack.rspackVersion, '1.0.0-beta.4') && { usedExports: !isLibraryMode }),\n\n chunks: 'all',\n\n //name: '[id].chunk', //TODO: is this needed?\n\n // Production chunks should be at least 1000 bytes to prevent large numbers of file requests\n minSize: isLibraryMode ? 0 : 1000,\n\n cacheGroups: {\n defaultVendors: false,\n },\n },\n },\n };\n\n if (Object.keys(bundlerOptions).length) {\n return merge(config, bundlerOptions);\n }\n\n return config;\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { BundleOptions, BundlerResult } from '@ms-cloudpack/common-types';
|
|
2
|
-
import type { Configuration,
|
|
2
|
+
import type { Configuration, StatsCompilation } from '@rspack/core';
|
|
3
3
|
export declare function normalizeRspackOutput(params: {
|
|
4
4
|
/** Rspack config */
|
|
5
5
|
config: Configuration;
|
|
@@ -8,6 +8,6 @@ export declare function normalizeRspackOutput(params: {
|
|
|
8
8
|
/** Absolute output path */
|
|
9
9
|
outputPath: string;
|
|
10
10
|
/** Stats from rspack callback */
|
|
11
|
-
stats:
|
|
11
|
+
stats: StatsCompilation | undefined;
|
|
12
12
|
}): BundlerResult;
|
|
13
13
|
//# sourceMappingURL=normalizeRspackOutput.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalizeRspackOutput.d.ts","sourceRoot":"","sources":["../src/normalizeRspackOutput.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,aAAa,EAAoB,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAIhH,OAAO,KAAK,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"normalizeRspackOutput.d.ts","sourceRoot":"","sources":["../src/normalizeRspackOutput.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,aAAa,EAAoB,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAIhH,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAc,MAAM,cAAc,CAAC;AAEhF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,oBAAoB;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,uBAAuB;IACvB,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,WAAW,CAAC,CAAC;IACtD,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,KAAK,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACrC,GAAG,aAAa,CAoDhB"}
|
|
@@ -5,12 +5,11 @@ export function normalizeRspackOutput(params) {
|
|
|
5
5
|
const { config, options: { entries, inputPath }, outputPath, stats, } = params;
|
|
6
6
|
// Process the errors and warnings from the stats json.
|
|
7
7
|
// This provides more straightforward access to file paths.
|
|
8
|
-
const statsJson = stats?.toJson();
|
|
9
8
|
return {
|
|
10
9
|
outputPath,
|
|
11
|
-
outputFiles:
|
|
10
|
+
outputFiles: (stats?.assets || []).map((asset) => {
|
|
12
11
|
const outFile = {
|
|
13
|
-
outputPath: normalizeRelativePath(asset),
|
|
12
|
+
outputPath: normalizeRelativePath(asset.name),
|
|
14
13
|
};
|
|
15
14
|
// Webpack doesn't include entry point info in the output, so add manually if applicable
|
|
16
15
|
if (outFile.outputPath.endsWith('.js')) {
|
|
@@ -18,13 +17,13 @@ export function normalizeRspackOutput(params) {
|
|
|
18
17
|
if (entryPoint) {
|
|
19
18
|
outFile.entryPoint = entryPoint;
|
|
20
19
|
}
|
|
21
|
-
const [chunkName] = Object.entries(
|
|
22
|
-
const relatedChunk = chunkName ?
|
|
20
|
+
const [chunkName] = Object.entries(stats?.assetsByChunkName ?? {}).find(([_, value]) => value.includes(asset.name)) ?? [undefined];
|
|
21
|
+
const relatedChunk = chunkName ? stats?.chunks?.find((chunk) => chunk.id === chunkName) : undefined;
|
|
23
22
|
const relatedModule = relatedChunk?.modules?.find((module) => module.id === entryPoint);
|
|
24
23
|
outFile.exports = relatedModule?.providedExports ?? undefined;
|
|
25
|
-
for (const chunk of
|
|
24
|
+
for (const chunk of stats?.chunks || []) {
|
|
26
25
|
// We don't have enough info to determine if a file is a worker
|
|
27
|
-
if (!chunk.files || !chunk.modules || !chunk.files.includes(asset)) {
|
|
26
|
+
if (!chunk.files || !chunk.modules || !chunk.files.includes(asset.name)) {
|
|
28
27
|
continue;
|
|
29
28
|
}
|
|
30
29
|
// Check if the chunk has a worker
|
|
@@ -36,10 +35,10 @@ export function normalizeRspackOutput(params) {
|
|
|
36
35
|
}
|
|
37
36
|
return outFile;
|
|
38
37
|
}),
|
|
39
|
-
errors: createBundleMessages(
|
|
40
|
-
warnings: createBundleMessages(
|
|
38
|
+
errors: createBundleMessages(stats?.errors, inputPath),
|
|
39
|
+
warnings: createBundleMessages(stats?.warnings, inputPath),
|
|
41
40
|
rawInput: config,
|
|
42
|
-
rawOutput:
|
|
41
|
+
rawOutput: stats,
|
|
43
42
|
};
|
|
44
43
|
}
|
|
45
44
|
/** Create BundleMessages from rspackErrors */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalizeRspackOutput.js","sourceRoot":"","sources":["../src/normalizeRspackOutput.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,MAAM,UAAU,qBAAqB,CAAC,MASrC;IACC,MAAM,EACJ,MAAM,EACN,OAAO,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAC/B,UAAU,EACV,KAAK,GACN,GAAG,MAAM,CAAC;IAEX,uDAAuD;IACvD,2DAA2D;IAC3D,
|
|
1
|
+
{"version":3,"file":"normalizeRspackOutput.js","sourceRoot":"","sources":["../src/normalizeRspackOutput.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,MAAM,UAAU,qBAAqB,CAAC,MASrC;IACC,MAAM,EACJ,MAAM,EACN,OAAO,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAC/B,UAAU,EACV,KAAK,GACN,GAAG,MAAM,CAAC;IAEX,uDAAuD;IACvD,2DAA2D;IAC3D,OAAO;QACL,UAAU;QACV,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAoB,EAAE;YACjE,MAAM,OAAO,GAAqB;gBAChC,UAAU,EAAE,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC;aAC9C,CAAC;YAEF,wFAAwF;YACxF,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;gBACpE,IAAI,UAAU,EAAE,CAAC;oBACf,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;gBAClC,CAAC;gBAED,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CACrF,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAC3B,IAAI,CAAC,SAAS,CAAC,CAAC;gBACjB,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACpG,MAAM,aAAa,GAAG,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;gBACxF,OAAO,CAAC,OAAO,GAAG,aAAa,EAAE,eAAe,IAAI,SAAS,CAAC;gBAE9D,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;oBACxC,+DAA+D;oBAC/D,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;wBACxE,SAAS;oBACX,CAAC;oBAED,kCAAkC;oBAClC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,EAAE,CAAC;wBACvG,kBAAkB;wBAClB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;oBAC1B,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;QACF,MAAM,EAAE,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC;QACtD,QAAQ,EAAE,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC;QAC1D,QAAQ,EAAE,MAA4C;QACtD,SAAS,EAAE,KAAK;KACjB,CAAC;AACJ,CAAC;AAED,8CAA8C;AAC9C,SAAS,oBAAoB,CAAC,YAAsC,EAAE,SAAiB;IACrF,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACxC,MAAM,aAAa,GAAkB;YACnC,IAAI,EAAE,KAAK,CAAC,OAAO;YACnB,MAAM,EAAE,QAAQ;SACjB,CAAC;QAEF,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC;QAEhD,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAC5D,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,uDAAuD;gBACvD,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;YAC9D,CAAC;YACD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,oCAAoC;gBACpC,kHAAkH;gBAClH,UAAU;gBACV,sCAAsC;gBACtC,sCAAsC;gBACtC,UAAU;gBAEV,0BAA0B;gBAC1B,yDAAyD;gBACzD,gBAAgB;gBAChB,yFAAyF;gBACzF,eAAe;gBACf,gBAAgB;gBAChB,oEAAoE;gBACpE,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBAChE,IAAI,UAAU,EAAE,CAAC;oBACf,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;oBACrB,GAAG,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAClC,CAAC;YACH,CAAC;YAED,aAAa,CAAC,QAAQ,GAAG;gBACvB,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;oBAC7B,CAAC,CAAC,wBAAwB,CAAC,SAAS,EAAE,QAAQ,CAAC;oBAC/C,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC;gBACnC,IAAI,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;gBACzD,MAAM,EAAE,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;aAC1D,CAAC;QACJ,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import type { BundleMessage, BundleOptions, BundleOutputFile, BundlerResult } from '@ms-cloudpack/common-types';\nimport { normalizeRelativePath } from '@ms-cloudpack/path-string-parsing';\nimport { normalizedPathRelativeTo } from '@ms-cloudpack/path-utilities';\nimport path from 'path';\nimport type { Configuration, StatsCompilation, StatsError } from '@rspack/core';\n\nexport function normalizeRspackOutput(params: {\n /** Rspack config */\n config: Configuration;\n /** Original options */\n options: Pick<BundleOptions, 'entries' | 'inputPath'>;\n /** Absolute output path */\n outputPath: string;\n /** Stats from rspack callback */\n stats: StatsCompilation | undefined;\n}): BundlerResult {\n const {\n config,\n options: { entries, inputPath },\n outputPath,\n stats,\n } = params;\n\n // Process the errors and warnings from the stats json.\n // This provides more straightforward access to file paths.\n return {\n outputPath,\n outputFiles: (stats?.assets || []).map((asset): BundleOutputFile => {\n const outFile: BundleOutputFile = {\n outputPath: normalizeRelativePath(asset.name),\n };\n\n // Webpack doesn't include entry point info in the output, so add manually if applicable\n if (outFile.outputPath.endsWith('.js')) {\n const entryPoint = entries[outFile.outputPath.replace(/\\.js$/, '')];\n if (entryPoint) {\n outFile.entryPoint = entryPoint;\n }\n\n const [chunkName] = Object.entries(stats?.assetsByChunkName ?? {}).find(([_, value]) =>\n value.includes(asset.name),\n ) ?? [undefined];\n const relatedChunk = chunkName ? stats?.chunks?.find((chunk) => chunk.id === chunkName) : undefined;\n const relatedModule = relatedChunk?.modules?.find((module) => module.id === entryPoint);\n outFile.exports = relatedModule?.providedExports ?? undefined;\n\n for (const chunk of stats?.chunks || []) {\n // We don't have enough info to determine if a file is a worker\n if (!chunk.files || !chunk.modules || !chunk.files.includes(asset.name)) {\n continue;\n }\n\n // Check if the chunk has a worker\n if (chunk.modules.some(({ reasons = [] }) => reasons.some((reason) => reason.type === 'new Worker()'))) {\n // It is a worker!\n outFile.isWorker = true;\n }\n }\n }\n\n return outFile;\n }),\n errors: createBundleMessages(stats?.errors, inputPath),\n warnings: createBundleMessages(stats?.warnings, inputPath),\n rawInput: config as unknown as Record<string, unknown>,\n rawOutput: stats,\n };\n}\n\n/** Create BundleMessages from rspackErrors */\nfunction createBundleMessages(rspackErrors: StatsError[] | undefined, inputPath: string): BundleMessage[] {\n return (rspackErrors || []).map((error) => {\n const bundleMessage: BundleMessage = {\n text: error.message,\n source: 'rspack',\n };\n\n const filePath = error.file || error.moduleName;\n\n if (filePath) {\n let [, line, col] = error?.loc?.match(/^(\\d+):(\\d+)/) || [];\n if (!line) {\n // look for something like '[<file path>:<line>:<col>]'\n [, line, col] = error.message.match(/:(\\d+):(\\d+)\\]/) || [];\n }\n if (!line) {\n // rspack errors can look like this:\n // × HarmonyLinkingError: export 'foo' (reexported as 'foo') was not found in './bar.js' (possible exports: bar)\n // ╭────\n // 1 │ export { foo } from './bar.js';\n // · ───────────────────────────────\n // ╰────\n\n // × Module parse failed:\n // ╰─▶ × JavaScript parsing error: Expression expected\n // ╭────\n // 1 │ }export default function() { console.log('oops leading closing bracket'); }\n // · ─\n // ╰────\n // group 1: line number; group 2: length = column number (0-indexed)\n const errorMatch = error.message.match(/(\\d+) │ .*\\n +· ( *)─/);\n if (errorMatch) {\n line = errorMatch[1];\n col = `${errorMatch[2].length}`;\n }\n }\n\n bundleMessage.location = {\n file: path.isAbsolute(filePath)\n ? normalizedPathRelativeTo(inputPath, filePath)\n : normalizeRelativePath(filePath),\n line: typeof line === 'string' ? Number(line) : undefined,\n column: typeof col === 'string' ? Number(col) : undefined,\n };\n }\n\n return bundleMessage;\n });\n}\n"]}
|
package/lib/rspack.js
CHANGED
|
@@ -28,7 +28,7 @@ export const rspack = {
|
|
|
28
28
|
});
|
|
29
29
|
try {
|
|
30
30
|
const stats = await new Promise((resolve, reject) => {
|
|
31
|
-
runRspack(config, (err, statsResult) => (err ? reject(err) : resolve(statsResult)));
|
|
31
|
+
runRspack(config, (err, statsResult) => (err ? reject(err) : resolve(statsResult?.toJson())));
|
|
32
32
|
});
|
|
33
33
|
// Normalize the output outside the callback, so if there's an exception it's not swallowed
|
|
34
34
|
return normalizeRspackOutput({ stats, config, outputPath, options });
|
package/lib/rspack.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rspack.js","sourceRoot":"","sources":["../src/rspack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,EAAE,MAAM,IAAI,SAAS,
|
|
1
|
+
{"version":3,"file":"rspack.js","sourceRoot":"","sources":["../src/rspack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,EAAE,MAAM,IAAI,SAAS,EAAyB,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,MAAM,WAAW,GAAG,QAAQ,CAAC;AAE7B,MAAM,CAAC,MAAM,MAAM,GAAY;IAC7B,IAAI,EAAE,WAAW;IACjB,MAAM,EAAE,KAAK,WAAW,OAAO,EAAE,OAAO;QACtC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACpE,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;YACnB,OAAO,EAAE,MAAM,EAAE,CAAC;QACpB,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC;QAE3D,MAAM,0BAA0B,GAA+B;YAC7D,wDAAwD;YACxD,cAAc,EAAE,EAAE,UAAU,EAAE,qBAAqB,EAAE;YACrD,GAAG,CAAC,OAAO,CAAC,mBAAmB,IAAI,EAAE,CAAC;SACvC,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC;YACvC,WAAW;YACX,UAAU,EAAE,sBAAsB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC;YAChF,0BAA0B;YAC1B,oBAAoB,EAAE,kBAAkB;YACxC,2BAA2B,EAAE,OAAO,CAAC,MAAM,CAAC,2BAA2B;SACxE,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,OAAO,CAA+B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAChF,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YAChG,CAAC,CAAC,CAAC;YAEH,2FAA2F;YAC3F,OAAO,qBAAqB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,YAAY,GAAkB,EAAE,IAAI,EAAG,GAAa,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;YACzG,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBACtC,oCAAoC;gBACpC,YAAY,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;YACjH,CAAC;YACD,OAAO;gBACL,MAAM,EAAE,CAAC,YAAY,CAAC;gBACtB,QAAQ,EAAE,MAAiC;aAC5C,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC","sourcesContent":["import { processCapabilities } from '@ms-cloudpack/bundler-capabilities';\nimport type { BundleMessage, BundlerCapabilitiesOptions, Bundler } from '@ms-cloudpack/common-types';\nimport { rspack as runRspack, type StatsCompilation } from '@rspack/core';\nimport { rspackCapabilities } from './rspackCapabilities.js';\nimport { getRspackConfiguration } from './getRspackConfiguration.js';\nimport { writeESMStubsInWorker } from '@ms-cloudpack/esm-stub-utilities';\nimport { normalizeRspackOutput } from './normalizeRspackOutput.js';\nimport { base64AssetExtensions } from '@ms-cloudpack/bundler-utilities';\n\nconst bundlerName = 'rspack';\n\nexport const rspack: Bundler = {\n name: bundlerName,\n bundle: async function (options, context) {\n const { errors, newEntries } = await writeESMStubsInWorker(options);\n if (errors?.length) {\n return { errors };\n }\n\n const outputPath = options.outputPath ?? options.inputPath;\n\n const bundlerCapabilitiesOptions: BundlerCapabilitiesOptions = {\n // Enable asset-inline by default for common image types\n 'asset-inline': { extensions: base64AssetExtensions },\n ...(options.bundlerCapabilities || {}),\n };\n\n const config = await processCapabilities({\n bundlerName,\n baseConfig: getRspackConfiguration({ options, outputPath, newEntries }, context),\n bundlerCapabilitiesOptions,\n internalCapabilities: rspackCapabilities,\n bundlerCapabilitiesRegistry: context.config.bundlerCapabilitiesRegistry,\n });\n\n try {\n const stats = await new Promise<StatsCompilation | undefined>((resolve, reject) => {\n runRspack(config, (err, statsResult) => (err ? reject(err) : resolve(statsResult?.toJson())));\n });\n\n // Normalize the output outside the callback, so if there's an exception it's not swallowed\n return normalizeRspackOutput({ stats, config, outputPath, options });\n } catch (err) {\n const errorMessage: BundleMessage = { text: (err as Error).message || String(err), source: bundlerName };\n if (err instanceof Error && err.stack) {\n // remove the message from the stack\n errorMessage.notes = [{ text: err.stack.includes(err.message) ? err.stack.split(err.message)[1] : err.stack }];\n }\n return {\n errors: [errorMessage],\n rawInput: config as Record<string, unknown>,\n };\n }\n },\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ms-cloudpack/bundler-rspack",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.17",
|
|
4
4
|
"description": "A cloudpack plugin for abstracting rspack.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"@ms-cloudpack/esm-stub-utilities": "^0.14.1",
|
|
21
21
|
"@ms-cloudpack/path-string-parsing": "^1.2.6",
|
|
22
22
|
"@ms-cloudpack/path-utilities": "^2.8.2",
|
|
23
|
-
"@rspack/core": "^1.
|
|
23
|
+
"@rspack/core": "^1.1.8",
|
|
24
24
|
"@swc/core": "^1.3.0",
|
|
25
25
|
"css-loader": "^6.0.0",
|
|
26
26
|
"ejs-loader": "^0.5.0",
|