@modern-js/uni-builder 2.48.6 → 2.49.1

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.
@@ -36,12 +36,8 @@ var import_core = require("@rsbuild/core");
36
36
  var import_parseCommonConfig = require("../shared/parseCommonConfig");
37
37
  var import_compatLegacyPlugin = require("../shared/compatLegacyPlugin");
38
38
  async function parseConfig(uniBuilderConfig, options) {
39
- var _uniBuilderConfig_output, _uniBuilderConfig_tools, _uniBuilderConfig_tools1;
39
+ var _uniBuilderConfig_tools, _uniBuilderConfig_tools1;
40
40
  const { rsbuildConfig, rsbuildPlugins } = await (0, import_parseCommonConfig.parseCommonConfig)(uniBuilderConfig, options);
41
- if ((_uniBuilderConfig_output = uniBuilderConfig.output) === null || _uniBuilderConfig_output === void 0 ? void 0 : _uniBuilderConfig_output.enableAssetManifest) {
42
- const { pluginManifest } = await Promise.resolve().then(() => __toESM(require("./plugins/manifest")));
43
- rsbuildPlugins.push(pluginManifest());
44
- }
45
41
  if ((_uniBuilderConfig_tools = uniBuilderConfig.tools) === null || _uniBuilderConfig_tools === void 0 ? void 0 : _uniBuilderConfig_tools.babel) {
46
42
  var _uniBuilderConfig_tools2;
47
43
  const { pluginBabel } = await Promise.resolve().then(() => __toESM(require("@rsbuild/plugin-babel")));
@@ -1,8 +1,11 @@
1
+ /// <reference types="node" />
1
2
  import { StartDevServerOptions as RsbuildStartDevServerOptions, StartServerResult, RsbuildInstance, DevConfig, ServerConfig } from '@rsbuild/shared';
2
- import type { Server, ModernDevServerOptionsNew } from '@modern-js/server';
3
+ import type { ModernDevServerOptions } from '@modern-js/server';
4
+ import type { Server } from 'node:http';
5
+ import { type InitProdMiddlewares } from '@modern-js/prod-server';
3
6
  import type { UniBuilderConfig, ToolsDevServerConfig } from '../types';
4
- type ServerOptions = Partial<Omit<ModernDevServerOptionsNew, 'config'>> & {
5
- config?: Partial<ModernDevServerOptionsNew['config']>;
7
+ type ServerOptions = Partial<Omit<ModernDevServerOptions, 'config'>> & {
8
+ config?: Partial<ModernDevServerOptions['config']>;
6
9
  };
7
10
  export declare const transformToRsbuildServerOptions: (dev: NonNullable<UniBuilderConfig['dev']>, devServer: ToolsDevServerConfig) => {
8
11
  dev: DevConfig;
@@ -11,6 +14,7 @@ export declare const transformToRsbuildServerOptions: (dev: NonNullable<UniBuild
11
14
  export type StartDevServerOptions = RsbuildStartDevServerOptions & {
12
15
  apiOnly?: boolean;
13
16
  serverOptions?: ServerOptions;
17
+ initProdMiddlewares?: InitProdMiddlewares;
14
18
  };
15
19
  export type UniBuilderStartServerResult = Omit<StartServerResult, 'server'> & {
16
20
  server: Server;
@@ -33,6 +33,7 @@ __export(devServer_exports, {
33
33
  });
34
34
  module.exports = __toCommonJS(devServer_exports);
35
35
  var import_shared = require("@rsbuild/shared");
36
+ var import_prod_server = require("@modern-js/prod-server");
36
37
  const getServerOptions = (builderConfig) => {
37
38
  var _builderConfig_output_distPath, _builderConfig_output, _builderConfig_output1, _builderConfig_output2;
38
39
  return {
@@ -66,7 +67,8 @@ const transformToRsbuildServerOptions = (dev, devServer) => {
66
67
  liveReload: true,
67
68
  client: {
68
69
  path: "/webpack-hmr",
69
- overlay: false
70
+ overlay: false,
71
+ ...devConfig.client || {}
70
72
  }
71
73
  },
72
74
  options: devServer,
@@ -123,7 +125,11 @@ const getDevServerOptions = async ({ builderConfig, serverOptions }) => {
123
125
  };
124
126
  async function startDevServer(rsbuild, options = {}, builderConfig) {
125
127
  var _serverOptions_dev, _serverOptions_dev1;
126
- const { ServerForRsbuild } = await Promise.resolve().then(() => __toESM(require("@modern-js/server")));
128
+ (0, import_shared.debug)("create dev server");
129
+ if (!options.initProdMiddlewares) {
130
+ options.initProdMiddlewares = import_prod_server.initProdMiddlewares;
131
+ }
132
+ const { createDevServer } = await Promise.resolve().then(() => __toESM(require("@modern-js/server")));
127
133
  const rsbuildServer = await rsbuild.createDevServer({
128
134
  ...options,
129
135
  runCompile: !options.apiOnly
@@ -139,9 +145,10 @@ async function startDevServer(rsbuild, options = {}, builderConfig) {
139
145
  const { port } = rsbuildServer;
140
146
  const { server: { host }, dev: { writeToDisk } } = rsbuildConfig;
141
147
  var _serverOptions_dev_watch;
142
- const server = new ServerForRsbuild({
148
+ const server = await createDevServer({
143
149
  pwd: rsbuild.context.rootPath,
144
150
  ...serverOptions,
151
+ appContext: serverOptions.appContext || {},
145
152
  rsbuild,
146
153
  getMiddlewares: () => ({
147
154
  middlewares: rsbuildServer.middlewares,
@@ -154,7 +161,7 @@ async function startDevServer(rsbuild, options = {}, builderConfig) {
154
161
  writeToDisk
155
162
  },
156
163
  config
157
- });
164
+ }, options.initProdMiddlewares);
158
165
  const protocol = https ? "https" : "http";
159
166
  const urls = (0, import_shared.getAddressUrls)({
160
167
  protocol,
@@ -162,7 +169,6 @@ async function startDevServer(rsbuild, options = {}, builderConfig) {
162
169
  host
163
170
  });
164
171
  (0, import_shared.debug)("listen dev server");
165
- await server.init();
166
172
  return new Promise((resolve) => {
167
173
  server.listen({
168
174
  host,
@@ -108,10 +108,13 @@ async function parseCommonConfig(uniBuilderConfig, options) {
108
108
  var _uniBuilderConfig_output, _uniBuilderConfig_tools;
109
109
  var _output, _output_distPath, _output_distPath1, _output1, _extraConfig, _html, _extraConfig1;
110
110
  const { cwd, frameworkConfigPath, entry, target } = options;
111
- const { plugins: [...plugins] = [], performance: { ...performanceConfig } = {}, output: { disableFilenameHash, enableLatestDecorators, cssModuleLocalIdentName, enableInlineScripts, disableCssExtract, enableInlineStyles, disableCssModuleExtension, disableTsChecker, disableSvgr, svgDefaultExport, assetsRetry, enableAssetFallback, disableSourceMap, convertToRem, disableMinimize, ...outputConfig } = {}, html: { disableHtmlFolder, metaByEntries, titleByEntries, faviconByEntries, injectByEntries, templateByEntries, templateParametersByEntries, tagsByEntries, tags, ...htmlConfig } = {}, source: { alias, globalVars, resolveMainFields, resolveExtensionPrefix, ...sourceConfig } = {}, dev, security: { checkSyntax, sri, ...securityConfig } = {}, tools: { devServer, tsChecker, minifyCss, ...toolsConfig } = {} } = uniBuilderConfig;
111
+ const { plugins: [...plugins] = [], performance: { ...performanceConfig } = {}, output: { disableFilenameHash, enableLatestDecorators, cssModuleLocalIdentName, enableInlineScripts, disableCssExtract, enableInlineStyles, disableCssModuleExtension, disableTsChecker, disableSvgr, svgDefaultExport, assetsRetry, enableAssetFallback, enableAssetManifest, disableSourceMap, convertToRem, disableMinimize, polyfill, ...outputConfig } = {}, html: { disableHtmlFolder, metaByEntries, titleByEntries, faviconByEntries, injectByEntries, templateByEntries, templateParametersByEntries, tagsByEntries, tags, ...htmlConfig } = {}, source: { alias, globalVars, resolveMainFields, resolveExtensionPrefix, ...sourceConfig } = {}, dev, security: { checkSyntax, sri, ...securityConfig } = {}, tools: { devServer, tsChecker, minifyCss, ...toolsConfig } = {} } = uniBuilderConfig;
112
112
  const rsbuildConfig = {
113
113
  plugins,
114
- output: outputConfig,
114
+ output: {
115
+ polyfill: polyfill === "ua" ? "off" : polyfill,
116
+ ...outputConfig
117
+ },
115
118
  source: {
116
119
  alias,
117
120
  ...sourceConfig
@@ -319,6 +322,10 @@ async function parseCommonConfig(uniBuilderConfig, options) {
319
322
  pluginOptions: minifyCss
320
323
  }));
321
324
  targets.includes("web") && rsbuildPlugins.push((0, import_postcssLegacy.pluginPostcssLegacy)(overrideBrowserslist.web));
325
+ if (enableAssetManifest) {
326
+ const { pluginManifest } = await Promise.resolve().then(() => __toESM(require("./plugins/manifest")));
327
+ rsbuildPlugins.push(pluginManifest());
328
+ }
322
329
  return {
323
330
  rsbuildConfig: (0, import_core.mergeRsbuildConfig)(rsbuildConfig, extraConfig),
324
331
  rsbuildPlugins
@@ -31,7 +31,7 @@ __export(manifest_exports, {
31
31
  pluginManifest: () => pluginManifest
32
32
  });
33
33
  module.exports = __toCommonJS(manifest_exports);
34
- var import_manifest = require("../../shared/manifest");
34
+ var import_manifest = require("../manifest");
35
35
  const pluginManifest = () => ({
36
36
  name: "uni-builder:manifest",
37
37
  setup(api) {
package/dist/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { NodeEnv, MetaOptions, ServerConfig, ScriptInject, RsbuildTarget, ChainedConfig, ChainedConfigWithUtils, InlineChunkTest, DevConfig, RequestHandler, RsbuildEntry, MaybePromise, RsbuildPluginAPI, ArrayOrNot, HtmlTagDescriptor } from '@rsbuild/shared';
1
+ import type { NodeEnv, MetaOptions, ServerConfig, ScriptInject, RsbuildTarget, ChainedConfig, ChainedConfigWithUtils, InlineChunkTest, DevConfig, RequestHandler, RsbuildEntry, MaybePromise, RsbuildPluginAPI, ArrayOrNot, HtmlTagDescriptor, Polyfill } from '@rsbuild/shared';
2
2
  import type { RsbuildConfig } from '@rsbuild/core';
3
3
  import type { PluginAssetsRetryOptions } from '@rsbuild/plugin-assets-retry';
4
4
  import type { PluginStyledComponentsOptions } from '@rsbuild/plugin-styled-components';
@@ -324,7 +324,9 @@ export type UniBuilderPlugin = {
324
324
  export type UniBuilderConfig = {
325
325
  dev?: RsbuildConfig['dev'];
326
326
  html?: RsbuildConfig['html'];
327
- output?: RsbuildConfig['output'];
327
+ output?: Omit<NonNullable<RsbuildConfig['output']>, 'polyfill'> & {
328
+ polyfill?: Polyfill | 'ua';
329
+ };
328
330
  performance?: RsbuildConfig['performance'];
329
331
  security?: RsbuildConfig['security'];
330
332
  tools?: RsbuildConfig['tools'];
@@ -39,7 +39,7 @@ var import_moduleScopes = require("./plugins/moduleScopes");
39
39
  var import_babel = require("./plugins/babel");
40
40
  var import_react = require("./plugins/react");
41
41
  async function parseConfig(uniBuilderConfig, options) {
42
- var _uniBuilderConfig_tools, _uniBuilderConfig_performance, _uniBuilderConfig_tools1, _uniBuilderConfig_output, _uniBuilderConfig_output1, _uniBuilderConfig_security, _uniBuilderConfig_experiments, _uniBuilderConfig_tools2;
42
+ var _uniBuilderConfig_tools, _uniBuilderConfig_performance, _uniBuilderConfig_tools1, _uniBuilderConfig_output, _uniBuilderConfig_security, _uniBuilderConfig_experiments, _uniBuilderConfig_tools2;
43
43
  const { rsbuildConfig, rsbuildPlugins } = await (0, import_parseCommonConfig.parseCommonConfig)(uniBuilderConfig, options);
44
44
  var _uniBuilderConfig_performance_transformLodash;
45
45
  rsbuildPlugins.push((0, import_babel.pluginBabel)({
@@ -52,11 +52,7 @@ async function parseConfig(uniBuilderConfig, options) {
52
52
  const { pluginTsLoader } = await Promise.resolve().then(() => __toESM(require("./plugins/tsLoader")));
53
53
  rsbuildPlugins.push(pluginTsLoader(uniBuilderConfig.tools.tsLoader, uniBuilderConfig.tools.babel));
54
54
  }
55
- if ((_uniBuilderConfig_output = uniBuilderConfig.output) === null || _uniBuilderConfig_output === void 0 ? void 0 : _uniBuilderConfig_output.enableAssetManifest) {
56
- const { pluginManifest } = await Promise.resolve().then(() => __toESM(require("./plugins/manifest")));
57
- rsbuildPlugins.push(pluginManifest());
58
- }
59
- if (!((_uniBuilderConfig_output1 = uniBuilderConfig.output) === null || _uniBuilderConfig_output1 === void 0 ? void 0 : _uniBuilderConfig_output1.disableMinimize)) {
55
+ if (!((_uniBuilderConfig_output = uniBuilderConfig.output) === null || _uniBuilderConfig_output === void 0 ? void 0 : _uniBuilderConfig_output.disableMinimize)) {
60
56
  var _uniBuilderConfig_tools3;
61
57
  const { pluginMinimize } = await Promise.resolve().then(() => __toESM(require("./plugins/minimize")));
62
58
  rsbuildPlugins.push(pluginMinimize((_uniBuilderConfig_tools3 = uniBuilderConfig.tools) === null || _uniBuilderConfig_tools3 === void 0 ? void 0 : _uniBuilderConfig_tools3.terser));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@modern-js/uni-builder",
3
- "version": "2.48.6",
3
+ "version": "2.49.1",
4
4
  "description": "Unified builder for Modern.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,23 +26,23 @@
26
26
  "@babel/preset-react": "^7.22.15",
27
27
  "@babel/types": "^7.23.0",
28
28
  "@pmmmwh/react-refresh-webpack-plugin": "0.5.10",
29
- "@rsbuild/babel-preset": "0.6.1",
30
- "@rsbuild/core": "0.6.1",
31
- "@rsbuild/plugin-assets-retry": "0.6.1",
32
- "@rsbuild/plugin-babel": "0.6.1",
33
- "@rsbuild/plugin-check-syntax": "0.6.1",
34
- "@rsbuild/plugin-css-minimizer": "0.6.1",
35
- "@rsbuild/plugin-pug": "0.6.1",
36
- "@rsbuild/plugin-react": "0.6.1",
37
- "@rsbuild/plugin-rem": "0.6.1",
38
- "@rsbuild/plugin-source-build": "0.6.1",
39
- "@rsbuild/plugin-styled-components": "0.6.1",
40
- "@rsbuild/plugin-svgr": "0.6.1",
41
- "@rsbuild/plugin-type-check": "0.6.1",
42
- "@rsbuild/plugin-toml": "0.6.1",
43
- "@rsbuild/plugin-yaml": "0.6.1",
44
- "@rsbuild/shared": "0.6.1",
45
- "@rsbuild/webpack": "0.6.1",
29
+ "@rsbuild/babel-preset": "0.6.6",
30
+ "@rsbuild/core": "0.6.6",
31
+ "@rsbuild/plugin-assets-retry": "0.6.6",
32
+ "@rsbuild/plugin-babel": "0.6.6",
33
+ "@rsbuild/plugin-check-syntax": "0.6.6",
34
+ "@rsbuild/plugin-css-minimizer": "0.6.6",
35
+ "@rsbuild/plugin-pug": "0.6.6",
36
+ "@rsbuild/plugin-react": "0.6.6",
37
+ "@rsbuild/plugin-rem": "0.6.6",
38
+ "@rsbuild/plugin-source-build": "0.6.6",
39
+ "@rsbuild/plugin-styled-components": "0.6.6",
40
+ "@rsbuild/plugin-svgr": "0.6.6",
41
+ "@rsbuild/plugin-type-check": "0.6.6",
42
+ "@rsbuild/plugin-toml": "0.6.6",
43
+ "@rsbuild/plugin-yaml": "0.6.6",
44
+ "@rsbuild/shared": "0.6.6",
45
+ "@rsbuild/webpack": "0.6.6",
46
46
  "@swc/helpers": "0.5.3",
47
47
  "babel-loader": "9.1.3",
48
48
  "babel-plugin-import": "1.13.5",
@@ -65,20 +65,19 @@
65
65
  "terser-webpack-plugin": "5.3.10",
66
66
  "ts-loader": "9.4.4",
67
67
  "webpack": "^5.91.0",
68
- "webpack-manifest-plugin": "5.0.0",
69
68
  "webpack-subresource-integrity": "5.1.0",
70
- "@modern-js/utils": "2.48.6",
71
- "@modern-js/server": "2.48.6"
69
+ "@modern-js/utils": "2.49.1",
70
+ "@modern-js/server": "2.49.1"
72
71
  },
73
72
  "devDependencies": {
74
- "@rsbuild/plugin-swc": "0.6.1",
73
+ "@rsbuild/plugin-swc": "0.6.6",
75
74
  "@types/lodash": "^4.14.202",
76
75
  "react": "^18.2.0",
77
76
  "react-dom": "^18.2.0",
78
77
  "typescript": "^5.3.0",
79
- "@scripts/build": "2.48.6",
80
- "@scripts/vitest-config": "2.48.6",
81
- "@modern-js/prod-server": "2.48.6"
78
+ "@modern-js/prod-server": "2.49.1",
79
+ "@scripts/build": "2.49.1",
80
+ "@scripts/vitest-config": "2.49.1"
82
81
  },
83
82
  "publishConfig": {
84
83
  "access": "public",
@@ -1,2 +0,0 @@
1
- import type { RsbuildPlugin } from '@rsbuild/core';
2
- export declare const pluginManifest: () => RsbuildPlugin;
@@ -1,54 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var manifest_exports = {};
30
- __export(manifest_exports, {
31
- pluginManifest: () => pluginManifest
32
- });
33
- module.exports = __toCommonJS(manifest_exports);
34
- var import_manifest = require("../../shared/manifest");
35
- const pluginManifest = () => ({
36
- name: "uni-builder:manifest",
37
- setup(api) {
38
- api.modifyBundlerChain(async (chain, { target, CHAIN_ID }) => {
39
- const { WebpackManifestPlugin } = await Promise.resolve().then(() => __toESM(require("webpack-manifest-plugin")));
40
- const publicPath = chain.output.get("publicPath");
41
- chain.plugin(CHAIN_ID.PLUGIN.MANIFEST).use(WebpackManifestPlugin, [
42
- {
43
- fileName: target === "web" ? "asset-manifest.json" : `asset-manifest-${target}.json`,
44
- publicPath,
45
- generate: import_manifest.generateManifest
46
- }
47
- ]);
48
- });
49
- }
50
- });
51
- // Annotate the CommonJS export names for ESM import in node:
52
- 0 && (module.exports = {
53
- pluginManifest
54
- });
File without changes