@modern-js/uni-builder 0.0.0-nightly-20231216170634 → 0.0.0-nightly-20231218170633

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/dist/index.d.ts CHANGED
@@ -1,2 +1,5 @@
1
1
  import type { CreateUniBuilderOptions } from './types';
2
2
  export declare function createUniBuilder(options: CreateUniBuilderOptions): Promise<import("@rsbuild/shared").RsbuildInstance<import("@rsbuild/shared").RsbuildProvider>>;
3
+ export type { BundlerChain } from '@rsbuild/shared';
4
+ export type { BuilderConfig } from './types';
5
+ export { RUNTIME_CHUNK_NAME } from './shared/constants';
package/dist/index.js CHANGED
@@ -18,15 +18,18 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var src_exports = {};
20
20
  __export(src_exports, {
21
+ RUNTIME_CHUNK_NAME: () => import_constants.RUNTIME_CHUNK_NAME,
21
22
  createUniBuilder: () => createUniBuilder
22
23
  });
23
24
  module.exports = __toCommonJS(src_exports);
24
25
  var import_rspack = require("./rspack");
25
26
  var import_webpack = require("./webpack");
27
+ var import_constants = require("./shared/constants");
26
28
  async function createUniBuilder(options) {
27
29
  return options.bundlerType === "rspack" ? (0, import_rspack.createRspackBuilder)(options) : (0, import_webpack.createWebpackBuilder)(options);
28
30
  }
29
31
  // Annotate the CommonJS export names for ESM import in node:
30
32
  0 && (module.exports = {
33
+ RUNTIME_CHUNK_NAME,
31
34
  createUniBuilder
32
35
  });
@@ -1,7 +1,7 @@
1
1
  import type { RsbuildConfig, RsbuildPlugin, RsbuildInstance } from '@rsbuild/core';
2
2
  import type { RsbuildProvider } from '@rsbuild/shared';
3
- import type { UniBuilderRspackConfig, CreateRspackBuilderOptions } from '../types';
4
- export declare function parseConfig(uniBuilderConfig: UniBuilderRspackConfig, cwd: string, frameworkConfigPath?: string): Promise<{
3
+ import type { UniBuilderRspackConfig, CreateRspackBuilderOptions, CreateBuilderCommonOptions } from '../types';
4
+ export declare function parseConfig(uniBuilderConfig: UniBuilderRspackConfig, options: CreateBuilderCommonOptions): Promise<{
5
5
  rsbuildConfig: RsbuildConfig;
6
6
  rsbuildPlugins: RsbuildPlugin[];
7
7
  }>;
@@ -35,10 +35,9 @@ module.exports = __toCommonJS(rspack_exports);
35
35
  var import_core = require("@rsbuild/core");
36
36
  var import_parseCommonConfig = require("../shared/parseCommonConfig");
37
37
  var import_plugin_styled_components = require("@rsbuild/plugin-styled-components");
38
- var import_defaults = require("./defaults");
39
- async function parseConfig(uniBuilderConfig, cwd, frameworkConfigPath) {
38
+ async function parseConfig(uniBuilderConfig, options) {
40
39
  var _uniBuilderConfig_output, _uniBuilderConfig_tools, _uniBuilderConfig_tools1;
41
- const { rsbuildConfig, rsbuildPlugins } = await (0, import_parseCommonConfig.parseCommonConfig)(uniBuilderConfig, cwd, frameworkConfigPath);
40
+ const { rsbuildConfig, rsbuildPlugins } = await (0, import_parseCommonConfig.parseCommonConfig)(uniBuilderConfig, options);
42
41
  if ((_uniBuilderConfig_output = uniBuilderConfig.output) === null || _uniBuilderConfig_output === void 0 ? void 0 : _uniBuilderConfig_output.enableAssetManifest) {
43
42
  const { pluginManifest } = await Promise.resolve().then(() => __toESM(require("./plugins/manifest")));
44
43
  rsbuildPlugins.push(pluginManifest());
@@ -57,8 +56,11 @@ async function parseConfig(uniBuilderConfig, cwd, frameworkConfigPath) {
57
56
  };
58
57
  }
59
58
  async function createRspackBuilder(options) {
60
- const { cwd = process.cwd() } = options;
61
- const { rsbuildConfig, rsbuildPlugins } = await parseConfig((0, import_defaults.withDefaultConfig)(options.config), cwd, options.frameworkConfigPath);
59
+ const { cwd = process.cwd(), config, ...rest } = options;
60
+ const { rsbuildConfig, rsbuildPlugins } = await parseConfig(config, {
61
+ ...rest,
62
+ cwd
63
+ });
62
64
  const rsbuild = await (0, import_core.createRsbuild)({
63
65
  cwd,
64
66
  rsbuildConfig
@@ -1 +1 @@
1
- export declare const RUNTIME_CHUNK_NAME = "bundler-runtime";
1
+ export declare const RUNTIME_CHUNK_NAME = "builder-runtime";
@@ -21,7 +21,7 @@ __export(constants_exports, {
21
21
  RUNTIME_CHUNK_NAME: () => RUNTIME_CHUNK_NAME
22
22
  });
23
23
  module.exports = __toCommonJS(constants_exports);
24
- const RUNTIME_CHUNK_NAME = "bundler-runtime";
24
+ const RUNTIME_CHUNK_NAME = "builder-runtime";
25
25
  // Annotate the CommonJS export names for ESM import in node:
26
26
  0 && (module.exports = {
27
27
  RUNTIME_CHUNK_NAME
@@ -1,8 +1,8 @@
1
1
  import { type RsbuildPlugin, type RsbuildConfig } from '@rsbuild/core';
2
- import type { UniBuilderRspackConfig, UniBuilderWebpackConfig } from '../types';
2
+ import type { UniBuilderRspackConfig, UniBuilderWebpackConfig, CreateBuilderCommonOptions } from '../types';
3
3
  /** Determine if a file path is a CSS module when disableCssModuleExtension is enabled. */
4
4
  export declare const isLooseCssModules: (path: string) => boolean;
5
- export declare function parseCommonConfig<B = 'rspack' | 'webpack'>(uniBuilderConfig: B extends 'rspack' ? UniBuilderRspackConfig : UniBuilderWebpackConfig, cwd: string, frameworkConfigPath?: string): Promise<{
5
+ export declare function parseCommonConfig<B = 'rspack' | 'webpack'>(uniBuilderConfig: B extends 'rspack' ? UniBuilderRspackConfig : UniBuilderWebpackConfig, options: CreateBuilderCommonOptions): Promise<{
6
6
  rsbuildConfig: RsbuildConfig;
7
7
  rsbuildPlugins: RsbuildPlugin[];
8
8
  }>;
@@ -123,76 +123,86 @@ async function getBrowserslistWithDefault(path, config, target) {
123
123
  }
124
124
  return DEFAULT_BROWSERSLIST[target];
125
125
  }
126
- async function parseCommonConfig(uniBuilderConfig, cwd, frameworkConfigPath) {
127
- var _uniBuilderConfig_output, _uniBuilderConfig_output1, _uniBuilderConfig_output2, _uniBuilderConfig_output3, _tools_devServer, _tools_devServer1, _tools_devServer2, _tools_devServer3, _tools_devServer4, _tools_devServer5, _tools_devServer6, _tools_devServer_devMiddleware, _tools_devServer7, _tools_devServer8, _tools_devServer_before, _tools_devServer9, _tools_devServer_after, _tools_devServer10, _tools_devServer11, _uniBuilderConfig_source, _uniBuilderConfig_output4, _uniBuilderConfig_security, _uniBuilderConfig_output5, _uniBuilderConfig_output6, _uniBuilderConfig_source1, _uniBuilderConfig_source2, _uniBuilderConfig_output7, _uniBuilderConfig_output8, _uniBuilderConfig_output9, _uniBuilderConfig_experiments, _uniBuilderConfig_tools, _uniBuilderConfig_output10, _uniBuilderConfig_tools1;
128
- var _extraConfig;
126
+ async function parseCommonConfig(uniBuilderConfig, options) {
127
+ var _uniBuilderConfig_output, _uniBuilderConfig_output1, _uniBuilderConfig_output2, _uniBuilderConfig_html, _uniBuilderConfig_html1, _uniBuilderConfig_html2, _uniBuilderConfig_html3, _uniBuilderConfig_html4, _uniBuilderConfig_html5, _tools_devServer, _tools_devServer1, _tools_devServer2, _tools_devServer3, _tools_devServer4, _tools_devServer5, _tools_devServer6, _tools_devServer_devMiddleware, _tools_devServer7, _tools_devServer8, _tools_devServer_before, _tools_devServer9, _tools_devServer_after, _tools_devServer10, _tools_devServer11, _uniBuilderConfig_source, _uniBuilderConfig_output3, _uniBuilderConfig_security, _uniBuilderConfig_output4, _uniBuilderConfig_output5, _uniBuilderConfig_source1, _uniBuilderConfig_source2, _uniBuilderConfig_output6, _uniBuilderConfig_output7, _uniBuilderConfig_experiments, _uniBuilderConfig_tools, _uniBuilderConfig_output8, _uniBuilderConfig_output9, _uniBuilderConfig_tools1;
128
+ var _output, _output_distPath, _output1, _extraConfig, _html;
129
+ const { cwd, frameworkConfigPath, entry, target } = options;
129
130
  const rsbuildConfig = (0, import_shared.deepmerge)({}, uniBuilderConfig);
130
131
  const { dev = {}, html = {}, output = {}, tools = {} } = rsbuildConfig;
131
132
  if (dev.progressBar === void 0) {
132
133
  dev.progressBar = true;
133
134
  }
134
135
  if (output.cssModuleLocalIdentName) {
135
- var _output;
136
- (_output = output).cssModules || (_output.cssModules = {});
136
+ var _output2;
137
+ (_output2 = output).cssModules || (_output2.cssModules = {});
137
138
  output.cssModules.localIdentName = output.cssModuleLocalIdentName;
138
139
  delete output.cssModuleLocalIdentName;
139
140
  }
141
+ var _distPath;
142
+ (_distPath = (_output = output).distPath) !== null && _distPath !== void 0 ? _distPath : _output.distPath = {};
143
+ var _html1;
144
+ (_html1 = (_output_distPath = output.distPath).html) !== null && _html1 !== void 0 ? _html1 : _output_distPath.html = "html";
145
+ var _polyfill;
146
+ (_polyfill = (_output1 = output).polyfill) !== null && _polyfill !== void 0 ? _polyfill : _output1.polyfill = "entry";
140
147
  if (output.disableCssModuleExtension) {
141
- var _output1, _output_cssModules;
142
- (_output1 = output).cssModules || (_output1.cssModules = {});
148
+ var _output3, _output_cssModules;
149
+ (_output3 = output).cssModules || (_output3.cssModules = {});
143
150
  var _auto;
144
151
  (_auto = (_output_cssModules = output.cssModules).auto) !== null && _auto !== void 0 ? _auto : _output_cssModules.auto = isLooseCssModules;
145
152
  delete output.cssModuleLocalIdentName;
146
153
  }
147
154
  if ((_uniBuilderConfig_output = uniBuilderConfig.output) === null || _uniBuilderConfig_output === void 0 ? void 0 : _uniBuilderConfig_output.enableInlineScripts) {
148
- var _uniBuilderConfig_output11;
149
- output.inlineScripts = (_uniBuilderConfig_output11 = uniBuilderConfig.output) === null || _uniBuilderConfig_output11 === void 0 ? void 0 : _uniBuilderConfig_output11.enableInlineScripts;
155
+ var _uniBuilderConfig_output10;
156
+ output.inlineScripts = (_uniBuilderConfig_output10 = uniBuilderConfig.output) === null || _uniBuilderConfig_output10 === void 0 ? void 0 : _uniBuilderConfig_output10.enableInlineScripts;
150
157
  delete output.enableInlineScripts;
151
158
  }
152
159
  if ((_uniBuilderConfig_output1 = uniBuilderConfig.output) === null || _uniBuilderConfig_output1 === void 0 ? void 0 : _uniBuilderConfig_output1.disableCssExtract) {
153
- var _uniBuilderConfig_output12;
154
- output.injectStyles = (_uniBuilderConfig_output12 = uniBuilderConfig.output) === null || _uniBuilderConfig_output12 === void 0 ? void 0 : _uniBuilderConfig_output12.disableCssExtract;
160
+ var _uniBuilderConfig_output11;
161
+ output.injectStyles = (_uniBuilderConfig_output11 = uniBuilderConfig.output) === null || _uniBuilderConfig_output11 === void 0 ? void 0 : _uniBuilderConfig_output11.disableCssExtract;
155
162
  delete output.disableCssExtract;
156
163
  }
157
- const targets = ((_uniBuilderConfig_output2 = uniBuilderConfig.output) === null || _uniBuilderConfig_output2 === void 0 ? void 0 : _uniBuilderConfig_output2.targets) || [
158
- "web"
164
+ const targets = Array.isArray(target) ? target : [
165
+ target || "web"
159
166
  ];
167
+ output.targets = targets;
160
168
  const overrideBrowserslist = {};
161
- for (const target of targets) {
162
- overrideBrowserslist[target] = await getBrowserslistWithDefault(cwd, uniBuilderConfig, target);
169
+ for (const target2 of targets) {
170
+ overrideBrowserslist[target2] = await getBrowserslistWithDefault(cwd, uniBuilderConfig, target2);
163
171
  }
164
172
  output.overrideBrowserslist = overrideBrowserslist;
165
- if ((_uniBuilderConfig_output3 = uniBuilderConfig.output) === null || _uniBuilderConfig_output3 === void 0 ? void 0 : _uniBuilderConfig_output3.enableInlineStyles) {
166
- var _uniBuilderConfig_output13;
167
- output.inlineStyles = (_uniBuilderConfig_output13 = uniBuilderConfig.output) === null || _uniBuilderConfig_output13 === void 0 ? void 0 : _uniBuilderConfig_output13.enableInlineStyles;
173
+ if ((_uniBuilderConfig_output2 = uniBuilderConfig.output) === null || _uniBuilderConfig_output2 === void 0 ? void 0 : _uniBuilderConfig_output2.enableInlineStyles) {
174
+ var _uniBuilderConfig_output12;
175
+ output.inlineStyles = (_uniBuilderConfig_output12 = uniBuilderConfig.output) === null || _uniBuilderConfig_output12 === void 0 ? void 0 : _uniBuilderConfig_output12.enableInlineStyles;
168
176
  delete output.enableInlineStyles;
169
177
  }
170
178
  const extraConfig = {};
171
179
  (_extraConfig = extraConfig).html || (_extraConfig.html = {});
172
180
  extraConfig.html.outputStructure = html.disableHtmlFolder ? "flat" : "nested";
173
181
  delete html.disableHtmlFolder;
174
- if (html.metaByEntries) {
175
- extraConfig.html.meta = ({ entryName }) => html.metaByEntries[entryName];
182
+ if ((_uniBuilderConfig_html = uniBuilderConfig.html) === null || _uniBuilderConfig_html === void 0 ? void 0 : _uniBuilderConfig_html.metaByEntries) {
183
+ extraConfig.html.meta = ({ entryName }) => uniBuilderConfig.html.metaByEntries[entryName];
176
184
  delete html.metaByEntries;
177
185
  }
178
- if (html.titleByEntries) {
179
- extraConfig.html.title = ({ entryName }) => html.titleByEntries[entryName];
186
+ var _title;
187
+ (_title = (_html = html).title) !== null && _title !== void 0 ? _title : _html.title = "";
188
+ if ((_uniBuilderConfig_html1 = uniBuilderConfig.html) === null || _uniBuilderConfig_html1 === void 0 ? void 0 : _uniBuilderConfig_html1.titleByEntries) {
189
+ extraConfig.html.title = ({ entryName }) => uniBuilderConfig.html.titleByEntries[entryName];
180
190
  delete html.titleByEntries;
181
191
  }
182
- if (html.faviconByEntries) {
183
- extraConfig.html.favicon = ({ entryName }) => html.faviconByEntries[entryName];
192
+ if ((_uniBuilderConfig_html2 = uniBuilderConfig.html) === null || _uniBuilderConfig_html2 === void 0 ? void 0 : _uniBuilderConfig_html2.faviconByEntries) {
193
+ extraConfig.html.favicon = ({ entryName }) => uniBuilderConfig.html.faviconByEntries[entryName];
184
194
  delete html.faviconByEntries;
185
195
  }
186
- if (html.injectByEntries) {
187
- extraConfig.html.inject = ({ entryName }) => html.injectByEntries[entryName];
196
+ if ((_uniBuilderConfig_html3 = uniBuilderConfig.html) === null || _uniBuilderConfig_html3 === void 0 ? void 0 : _uniBuilderConfig_html3.injectByEntries) {
197
+ extraConfig.html.inject = ({ entryName }) => uniBuilderConfig.html.injectByEntries[entryName];
188
198
  delete html.injectByEntries;
189
199
  }
190
- if (html.templateByEntries) {
191
- extraConfig.html.template = ({ entryName }) => html.templateByEntries[entryName];
200
+ if ((_uniBuilderConfig_html4 = uniBuilderConfig.html) === null || _uniBuilderConfig_html4 === void 0 ? void 0 : _uniBuilderConfig_html4.templateByEntries) {
201
+ extraConfig.html.template = ({ entryName }) => uniBuilderConfig.html.templateByEntries[entryName];
192
202
  delete html.templateByEntries;
193
203
  }
194
- if (html.templateParametersByEntries) {
195
- extraConfig.html.templateParameters = (_, { entryName }) => html.templateParametersByEntries[entryName];
204
+ if ((_uniBuilderConfig_html5 = uniBuilderConfig.html) === null || _uniBuilderConfig_html5 === void 0 ? void 0 : _uniBuilderConfig_html5.templateParametersByEntries) {
205
+ extraConfig.html.templateParameters = (_, { entryName }) => uniBuilderConfig.html.templateParametersByEntries[entryName];
196
206
  delete html.templateParametersByEntries;
197
207
  }
198
208
  const server = (0, import_shared.isProd)() ? {
@@ -235,18 +245,24 @@ async function parseCommonConfig(uniBuilderConfig, cwd, frameworkConfigPath) {
235
245
  rsbuildConfig.dev = removeUndefinedKey(dev);
236
246
  rsbuildConfig.html = html;
237
247
  rsbuildConfig.output = output;
248
+ if (entry) {
249
+ var _rsbuildConfig;
250
+ var _source;
251
+ (_source = (_rsbuildConfig = rsbuildConfig).source) !== null && _source !== void 0 ? _source : _rsbuildConfig.source = {};
252
+ rsbuildConfig.source.entry = entry;
253
+ }
238
254
  const rsbuildPlugins = [
239
255
  (0, import_splitChunk.pluginSplitChunks)(),
240
256
  (0, import_globalVars.pluginGlobalVars)((_uniBuilderConfig_source = uniBuilderConfig.source) === null || _uniBuilderConfig_source === void 0 ? void 0 : _uniBuilderConfig_source.globalVars),
241
257
  (0, import_devtools.pluginDevtool)({
242
- disableSourceMap: (_uniBuilderConfig_output4 = uniBuilderConfig.output) === null || _uniBuilderConfig_output4 === void 0 ? void 0 : _uniBuilderConfig_output4.disableSourceMap
258
+ disableSourceMap: (_uniBuilderConfig_output3 = uniBuilderConfig.output) === null || _uniBuilderConfig_output3 === void 0 ? void 0 : _uniBuilderConfig_output3.disableSourceMap
243
259
  })
244
260
  ];
245
261
  const checkSyntaxOptions = (_uniBuilderConfig_security = uniBuilderConfig.security) === null || _uniBuilderConfig_security === void 0 ? void 0 : _uniBuilderConfig_security.checkSyntax;
246
262
  if (checkSyntaxOptions) {
247
263
  rsbuildPlugins.push((0, import_plugin_check_syntax.pluginCheckSyntax)(typeof checkSyntaxOptions === "boolean" ? {} : checkSyntaxOptions));
248
264
  }
249
- if (!((_uniBuilderConfig_output5 = uniBuilderConfig.output) === null || _uniBuilderConfig_output5 === void 0 ? void 0 : _uniBuilderConfig_output5.disableTsChecker)) {
265
+ if (!((_uniBuilderConfig_output4 = uniBuilderConfig.output) === null || _uniBuilderConfig_output4 === void 0 ? void 0 : _uniBuilderConfig_output4.disableTsChecker)) {
250
266
  var _uniBuilderConfig_tools2;
251
267
  rsbuildPlugins.push((0, import_plugin_type_check.pluginTypeCheck)({
252
268
  forkTsCheckerOptions: (_uniBuilderConfig_tools2 = uniBuilderConfig.tools) === null || _uniBuilderConfig_tools2 === void 0 ? void 0 : _uniBuilderConfig_tools2.tsChecker
@@ -254,10 +270,10 @@ async function parseCommonConfig(uniBuilderConfig, cwd, frameworkConfigPath) {
254
270
  delete output.disableTsChecker;
255
271
  delete tools.tsChecker;
256
272
  }
257
- if (!((_uniBuilderConfig_output6 = uniBuilderConfig.output) === null || _uniBuilderConfig_output6 === void 0 ? void 0 : _uniBuilderConfig_output6.disableSvgr)) {
258
- var _uniBuilderConfig_output14;
273
+ if (!((_uniBuilderConfig_output5 = uniBuilderConfig.output) === null || _uniBuilderConfig_output5 === void 0 ? void 0 : _uniBuilderConfig_output5.disableSvgr)) {
274
+ var _uniBuilderConfig_output13;
259
275
  rsbuildPlugins.push((0, import_plugin_svgr.pluginSvgr)({
260
- svgDefaultExport: (_uniBuilderConfig_output14 = uniBuilderConfig.output) === null || _uniBuilderConfig_output14 === void 0 ? void 0 : _uniBuilderConfig_output14.svgDefaultExport
276
+ svgDefaultExport: ((_uniBuilderConfig_output13 = uniBuilderConfig.output) === null || _uniBuilderConfig_output13 === void 0 ? void 0 : _uniBuilderConfig_output13.svgDefaultExport) || "url"
261
277
  }));
262
278
  delete output.disableSvgr;
263
279
  delete output.svgDefaultExport;
@@ -270,17 +286,11 @@ async function parseCommonConfig(uniBuilderConfig, cwd, frameworkConfigPath) {
270
286
  var _uniBuilderConfig_source4;
271
287
  rsbuildPlugins.push((0, import_extensionPrefix.pluginExtensionPrefix)((_uniBuilderConfig_source4 = uniBuilderConfig.source) === null || _uniBuilderConfig_source4 === void 0 ? void 0 : _uniBuilderConfig_source4.resolveExtensionPrefix));
272
288
  }
273
- if ((_uniBuilderConfig_output7 = uniBuilderConfig.output) === null || _uniBuilderConfig_output7 === void 0 ? void 0 : _uniBuilderConfig_output7.assetsRetry) {
274
- var _uniBuilderConfig_output15;
275
- rsbuildPlugins.push((0, import_plugin_assets_retry.pluginAssetsRetry)((_uniBuilderConfig_output15 = uniBuilderConfig.output) === null || _uniBuilderConfig_output15 === void 0 ? void 0 : _uniBuilderConfig_output15.assetsRetry));
276
- }
277
- const remOptions = (_uniBuilderConfig_output8 = uniBuilderConfig.output) === null || _uniBuilderConfig_output8 === void 0 ? void 0 : _uniBuilderConfig_output8.convertToRem;
289
+ const remOptions = (_uniBuilderConfig_output6 = uniBuilderConfig.output) === null || _uniBuilderConfig_output6 === void 0 ? void 0 : _uniBuilderConfig_output6.convertToRem;
278
290
  if (remOptions) {
279
291
  rsbuildPlugins.push((0, import_plugin_rem.pluginRem)(typeof remOptions === "boolean" ? {} : remOptions));
280
292
  }
281
- if (!((_uniBuilderConfig_output9 = uniBuilderConfig.output) === null || _uniBuilderConfig_output9 === void 0 ? void 0 : _uniBuilderConfig_output9.disableInlineRuntimeChunk)) {
282
- rsbuildPlugins.push((0, import_runtimeChunk.pluginRuntimeChunk)());
283
- }
293
+ rsbuildPlugins.push((0, import_runtimeChunk.pluginRuntimeChunk)((_uniBuilderConfig_output7 = uniBuilderConfig.output) === null || _uniBuilderConfig_output7 === void 0 ? void 0 : _uniBuilderConfig_output7.disableInlineRuntimeChunk));
284
294
  if ((_uniBuilderConfig_experiments = uniBuilderConfig.experiments) === null || _uniBuilderConfig_experiments === void 0 ? void 0 : _uniBuilderConfig_experiments.sourceBuild) {
285
295
  const { pluginSourceBuild } = await Promise.resolve().then(() => __toESM(require("@rsbuild/plugin-source-build")));
286
296
  rsbuildPlugins.push(pluginSourceBuild());
@@ -292,7 +302,11 @@ async function parseCommonConfig(uniBuilderConfig, cwd, frameworkConfigPath) {
292
302
  pugOptions
293
303
  }));
294
304
  }
295
- if ((_uniBuilderConfig_output10 = uniBuilderConfig.output) === null || _uniBuilderConfig_output10 === void 0 ? void 0 : _uniBuilderConfig_output10.enableAssetFallback) {
305
+ if ((_uniBuilderConfig_output8 = uniBuilderConfig.output) === null || _uniBuilderConfig_output8 === void 0 ? void 0 : _uniBuilderConfig_output8.assetsRetry) {
306
+ var _uniBuilderConfig_output14;
307
+ rsbuildPlugins.push((0, import_plugin_assets_retry.pluginAssetsRetry)((_uniBuilderConfig_output14 = uniBuilderConfig.output) === null || _uniBuilderConfig_output14 === void 0 ? void 0 : _uniBuilderConfig_output14.assetsRetry));
308
+ }
309
+ if ((_uniBuilderConfig_output9 = uniBuilderConfig.output) === null || _uniBuilderConfig_output9 === void 0 ? void 0 : _uniBuilderConfig_output9.enableAssetFallback) {
296
310
  rsbuildPlugins.push((0, import_fallback.pluginFallback)());
297
311
  }
298
312
  if (frameworkConfigPath) {
@@ -21,19 +21,33 @@ __export(postcssLegacy_exports, {
21
21
  pluginPostcssLegacy: () => pluginPostcssLegacy
22
22
  });
23
23
  module.exports = __toCommonJS(postcssLegacy_exports);
24
+ var import_shared = require("@rsbuild/shared");
24
25
  var import_getCssSupport = require("../getCssSupport");
25
26
  const pluginPostcssLegacy = (webBrowserslist) => ({
26
- name: "uni-builder:postcss-legacy",
27
+ name: "uni-builder:postcss-plugins",
27
28
  setup(api) {
28
29
  api.modifyRsbuildConfig((config, { mergeRsbuildConfig }) => {
29
30
  const cssSupport = (0, import_getCssSupport.getCssSupport)(webBrowserslist);
31
+ const enableExtractCSS = (0, import_shared.isUseCssExtract)(config, "web");
32
+ const enableCssMinify = !enableExtractCSS && import_shared.isProd;
30
33
  const plugins = [
31
34
  !cssSupport.customProperties && require("postcss-custom-properties"),
32
35
  !cssSupport.initial && require("postcss-initial"),
33
36
  !cssSupport.pageBreak && require("postcss-page-break"),
34
37
  !cssSupport.fontVariant && require("postcss-font-variant"),
35
38
  !cssSupport.mediaMinmax && require("postcss-media-minmax"),
36
- require("postcss-nesting")
39
+ require("postcss-nesting"),
40
+ enableCssMinify ? require("cssnano")({
41
+ preset: [
42
+ "default",
43
+ {
44
+ // merge longhand will break safe-area-inset-top, so disable it
45
+ // https://github.com/cssnano/cssnano/issues/803
46
+ // https://github.com/cssnano/cssnano/issues/967
47
+ mergeLonghand: false
48
+ }
49
+ ]
50
+ }) : false
37
51
  ].filter(Boolean);
38
52
  return mergeRsbuildConfig(config, {
39
53
  tools: {
@@ -1,2 +1,2 @@
1
1
  import type { RsbuildPlugin } from '@rsbuild/core';
2
- export declare const pluginRuntimeChunk: () => RsbuildPlugin;
2
+ export declare const pluginRuntimeChunk: (disableInlineRuntimeChunk?: boolean) => RsbuildPlugin;
@@ -22,7 +22,7 @@ __export(runtimeChunk_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(runtimeChunk_exports);
24
24
  var import_constants = require("../constants");
25
- const pluginRuntimeChunk = () => ({
25
+ const pluginRuntimeChunk = (disableInlineRuntimeChunk) => ({
26
26
  name: "uni-builder:runtime-chunk",
27
27
  setup(api) {
28
28
  api.modifyBundlerChain(async (chain, { target }) => {
@@ -40,6 +40,9 @@ const pluginRuntimeChunk = () => ({
40
40
  api.modifyRsbuildConfig((config) => {
41
41
  var _config;
42
42
  (_config = config).output || (_config.output = {});
43
+ if (disableInlineRuntimeChunk) {
44
+ return;
45
+ }
43
46
  const regexp = new RegExp(`${import_constants.RUNTIME_CHUNK_NAME}([.].+)?\\.js$`);
44
47
  if (!config.output.inlineScripts) {
45
48
  config.output.inlineScripts = regexp;
package/dist/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { NodeEnv, MetaOptions, ServerConfig, ScriptInject, RsbuildTarget, ChainedConfig, ChainedConfigWithUtils, InlineChunkTest, DevConfig, RequestHandler } from '@rsbuild/shared';
1
+ import type { NodeEnv, MetaOptions, ServerConfig, ScriptInject, RsbuildTarget, ChainedConfig, ChainedConfigWithUtils, InlineChunkTest, DevConfig, RequestHandler, RsbuildEntry } 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';
@@ -11,20 +11,21 @@ import type { PluginTypeCheckerOptions } from '@rsbuild/plugin-type-check';
11
11
  import type { PluginCheckSyntaxOptions } from '@rsbuild/plugin-check-syntax';
12
12
  import type { PluginPugOptions } from '@rsbuild/plugin-pug';
13
13
  import type { PluginBabelOptions } from '@rsbuild/plugin-babel';
14
- export type CreateWebpackBuilderOptions = {
15
- bundlerType: 'webpack';
16
- config: UniBuilderWebpackConfig;
14
+ export type CreateBuilderCommonOptions = {
15
+ entry?: RsbuildEntry;
17
16
  frameworkConfigPath?: string;
17
+ target?: RsbuildTarget | RsbuildTarget[];
18
18
  /** The root path of current project. */
19
- cwd: string;
19
+ cwd?: string;
20
20
  };
21
+ export type CreateWebpackBuilderOptions = {
22
+ bundlerType: 'webpack';
23
+ config: UniBuilderWebpackConfig;
24
+ } & CreateBuilderCommonOptions;
21
25
  export type CreateRspackBuilderOptions = {
22
26
  bundlerType: 'rspack';
23
27
  config: UniBuilderRspackConfig;
24
- frameworkConfigPath?: string;
25
- /** The root path of current project. */
26
- cwd?: string;
27
- };
28
+ } & CreateBuilderCommonOptions;
28
29
  export type CreateUniBuilderOptions = CreateWebpackBuilderOptions | CreateRspackBuilderOptions;
29
30
  export type GlobalVars = Record<string, any>;
30
31
  export type ChainedGlobalVars = ChainedConfigWithUtils<GlobalVars, {
@@ -1,6 +1,6 @@
1
1
  import { type RsbuildConfig, type RsbuildPlugin, type RsbuildInstance } from '@rsbuild/core';
2
- import type { UniBuilderWebpackConfig, CreateWebpackBuilderOptions } from '../types';
3
- export declare function parseConfig(uniBuilderConfig: UniBuilderWebpackConfig, cwd: string, frameworkConfigPath?: string): Promise<{
2
+ import type { UniBuilderWebpackConfig, CreateWebpackBuilderOptions, CreateBuilderCommonOptions } from '../types';
3
+ export declare function parseConfig(uniBuilderConfig: UniBuilderWebpackConfig, options: CreateBuilderCommonOptions): Promise<{
4
4
  rsbuildConfig: RsbuildConfig;
5
5
  rsbuildPlugins: RsbuildPlugin[];
6
6
  }>;
@@ -38,10 +38,9 @@ var import_moduleScopes = require("./plugins/moduleScopes");
38
38
  var import_styledComponents = require("./plugins/styledComponents");
39
39
  var import_babel = require("./plugins/babel");
40
40
  var import_react = require("./plugins/react");
41
- var import_defaults = require("./defaults");
42
- async function parseConfig(uniBuilderConfig, cwd, frameworkConfigPath) {
41
+ async function parseConfig(uniBuilderConfig, options) {
43
42
  var _uniBuilderConfig_tools, _uniBuilderConfig_tools1, _uniBuilderConfig_output, _uniBuilderConfig_security, _uniBuilderConfig_experiments, _uniBuilderConfig_tools2;
44
- const { rsbuildConfig, rsbuildPlugins } = await (0, import_parseCommonConfig.parseCommonConfig)(uniBuilderConfig, cwd, frameworkConfigPath);
43
+ const { rsbuildConfig, rsbuildPlugins } = await (0, import_parseCommonConfig.parseCommonConfig)(uniBuilderConfig, options);
45
44
  rsbuildPlugins.push((0, import_babel.pluginBabel)({
46
45
  babelLoaderOptions: (_uniBuilderConfig_tools = uniBuilderConfig.tools) === null || _uniBuilderConfig_tools === void 0 ? void 0 : _uniBuilderConfig_tools.babel
47
46
  }));
@@ -72,8 +71,11 @@ async function parseConfig(uniBuilderConfig, cwd, frameworkConfigPath) {
72
71
  }
73
72
  async function createWebpackBuilder(options) {
74
73
  var _options_config_source;
75
- const { cwd = process.cwd() } = options;
76
- const { rsbuildConfig, rsbuildPlugins } = await parseConfig((0, import_defaults.withDefaultConfig)(options.config), cwd, options.frameworkConfigPath);
74
+ const { cwd = process.cwd(), config, ...rest } = options;
75
+ const { rsbuildConfig, rsbuildPlugins } = await parseConfig(config, {
76
+ ...rest,
77
+ cwd
78
+ });
77
79
  const { webpackProvider } = await Promise.resolve().then(() => __toESM(require("@rsbuild/webpack")));
78
80
  rsbuildConfig.provider = webpackProvider;
79
81
  const rsbuild = await (0, import_core.createRsbuild)({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@modern-js/uni-builder",
3
- "version": "0.0.0-nightly-20231216170634",
3
+ "version": "0.0.0-nightly-20231218170633",
4
4
  "description": "Unified builder for Modern.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -45,6 +45,7 @@
45
45
  "babel-plugin-import": "1.13.5",
46
46
  "babel-plugin-styled-components": "1.13.3",
47
47
  "babel-plugin-transform-react-remove-prop-types": "0.4.24",
48
+ "cssnano": "6.0.1",
48
49
  "glob": "^9.3.5",
49
50
  "lodash": "^4.17.21",
50
51
  "postcss-custom-properties": "13.1.5",
@@ -66,8 +67,8 @@
66
67
  "react": "^18.2.0",
67
68
  "react-dom": "^18.2.0",
68
69
  "typescript": "^5.3.0",
69
- "@scripts/build": "0.0.0-nightly-20231216170634",
70
- "@scripts/vitest-config": "0.0.0-nightly-20231216170634"
70
+ "@scripts/build": "0.0.0-nightly-20231218170633",
71
+ "@scripts/vitest-config": "0.0.0-nightly-20231218170633"
71
72
  },
72
73
  "publishConfig": {
73
74
  "access": "public",
@@ -1,3 +0,0 @@
1
- import type { UniBuilderRspackConfig } from '../types';
2
- export declare const createDefaultConfig: () => UniBuilderRspackConfig;
3
- export declare const withDefaultConfig: (config: UniBuilderRspackConfig) => UniBuilderRspackConfig;
@@ -1,42 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var defaults_exports = {};
20
- __export(defaults_exports, {
21
- createDefaultConfig: () => createDefaultConfig,
22
- withDefaultConfig: () => withDefaultConfig
23
- });
24
- module.exports = __toCommonJS(defaults_exports);
25
- var import_defaults = require("../shared/defaults");
26
- var import_core = require("@rsbuild/core");
27
- const createDefaultConfig = () => ({
28
- dev: (0, import_defaults.getDefaultDevConfig)(),
29
- html: (0, import_defaults.getDefaultHtmlConfig)(),
30
- source: (0, import_defaults.getDefaultSourceConfig)(),
31
- output: (0, import_defaults.getDefaultOutputConfig)(),
32
- tools: (0, import_defaults.getDefaultToolsConfig)(),
33
- security: (0, import_defaults.getDefaultSecurityConfig)(),
34
- performance: (0, import_defaults.getDefaultPerformanceConfig)(),
35
- experiments: (0, import_defaults.getDefaultExperimentsConfig)()
36
- });
37
- const withDefaultConfig = (config) => (0, import_core.mergeRsbuildConfig)(createDefaultConfig(), config);
38
- // Annotate the CommonJS export names for ESM import in node:
39
- 0 && (module.exports = {
40
- createDefaultConfig,
41
- withDefaultConfig
42
- });
@@ -1,37 +0,0 @@
1
- import { UniBuilderRspackConfig } from '../types';
2
- export declare const getDefaultDevConfig: () => {
3
- port: number;
4
- host: string;
5
- https: boolean;
6
- progressBar: boolean;
7
- hmr: boolean;
8
- startUrl: (string | boolean | string[] | undefined) & (string | boolean | string[]);
9
- beforeStartUrl?: import("@rsbuild/shared").ArrayOrNot<() => void | Promise<void>> | undefined;
10
- assetPrefix: string | boolean;
11
- client?: {
12
- path?: string | undefined;
13
- port?: string | undefined;
14
- host?: string | undefined;
15
- protocol?: string | undefined;
16
- } | undefined;
17
- setupMiddlewares?: ((middlewares: {
18
- unshift: (...handlers: import("@rsbuild/shared").RequestHandler[]) => void;
19
- push: (...handlers: import("@rsbuild/shared").RequestHandler[]) => void;
20
- }, server: import("@rsbuild/shared").ServerAPIs) => void)[] | undefined;
21
- writeToDisk?: boolean | ((filename: string) => boolean) | undefined;
22
- };
23
- export declare const getDefaultSourceConfig: () => UniBuilderRspackConfig['source'];
24
- export declare const getDefaultHtmlConfig: () => UniBuilderRspackConfig['html'];
25
- export declare const getDefaultSecurityConfig: () => {
26
- checkSyntax: boolean;
27
- nonce: string;
28
- };
29
- export declare const getDefaultToolsConfig: () => {
30
- tsChecker: {};
31
- };
32
- export declare const getDefaultExperimentsConfig: () => {
33
- sourceBuild: boolean;
34
- };
35
- export declare const getDefaultPerformanceConfig: () => import("@rsbuild/shared").NormalizedPerformanceConfig;
36
- export declare const HTML_DIST_DIR = "html";
37
- export declare const getDefaultOutputConfig: () => UniBuilderRspackConfig['output'];
@@ -1,98 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var defaults_exports = {};
20
- __export(defaults_exports, {
21
- HTML_DIST_DIR: () => HTML_DIST_DIR,
22
- getDefaultDevConfig: () => getDefaultDevConfig,
23
- getDefaultExperimentsConfig: () => getDefaultExperimentsConfig,
24
- getDefaultHtmlConfig: () => getDefaultHtmlConfig,
25
- getDefaultOutputConfig: () => getDefaultOutputConfig,
26
- getDefaultPerformanceConfig: () => getDefaultPerformanceConfig,
27
- getDefaultSecurityConfig: () => getDefaultSecurityConfig,
28
- getDefaultSourceConfig: () => getDefaultSourceConfig,
29
- getDefaultToolsConfig: () => getDefaultToolsConfig
30
- });
31
- module.exports = __toCommonJS(defaults_exports);
32
- var import_shared = require("@rsbuild/shared");
33
- const rsbuildDefaultServerConfig = (0, import_shared.getDefaultServerConfig)();
34
- const getDefaultDevConfig = () => ({
35
- ...(0, import_shared.getDefaultDevConfig)(),
36
- port: rsbuildDefaultServerConfig.port,
37
- host: rsbuildDefaultServerConfig.host,
38
- https: false,
39
- progressBar: true
40
- });
41
- const getDefaultSourceConfig = () => ({
42
- ...(0, import_shared.getDefaultSourceConfig)(),
43
- globalVars: {}
44
- });
45
- const rsbuildDefaultHtmlConfig = (0, import_shared.getDefaultHtmlConfig)();
46
- const getDefaultHtmlConfig = () => ({
47
- inject: rsbuildDefaultHtmlConfig.inject,
48
- mountId: rsbuildDefaultHtmlConfig.mountId,
49
- crossorigin: rsbuildDefaultHtmlConfig.crossorigin,
50
- scriptLoading: rsbuildDefaultHtmlConfig.scriptLoading,
51
- disableHtmlFolder: false
52
- });
53
- const getDefaultSecurityConfig = () => ({
54
- ...(0, import_shared.getDefaultSecurityConfig)(),
55
- checkSyntax: false
56
- });
57
- const getDefaultToolsConfig = () => ({
58
- tsChecker: {}
59
- });
60
- const getDefaultExperimentsConfig = () => ({
61
- sourceBuild: false
62
- });
63
- const getDefaultPerformanceConfig = import_shared.getDefaultPerformanceConfig;
64
- const HTML_DIST_DIR = "html";
65
- const rsbuildDefaultOutputConfig = (0, import_shared.getDefaultOutputConfig)();
66
- const getDefaultOutputConfig = () => ({
67
- ...rsbuildDefaultOutputConfig,
68
- distPath: {
69
- ...rsbuildDefaultOutputConfig.distPath,
70
- html: HTML_DIST_DIR
71
- },
72
- polyfill: "entry",
73
- svgDefaultExport: "url",
74
- disableSvgr: false,
75
- disableTsChecker: false,
76
- disableCssModuleExtension: false,
77
- disableInlineRuntimeChunk: false,
78
- enableAssetFallback: false,
79
- enableAssetManifest: false,
80
- enableLatestDecorators: false,
81
- enableInlineScripts: false,
82
- enableInlineStyles: false,
83
- cssModules: {
84
- exportLocalsConvention: "camelCase"
85
- }
86
- });
87
- // Annotate the CommonJS export names for ESM import in node:
88
- 0 && (module.exports = {
89
- HTML_DIST_DIR,
90
- getDefaultDevConfig,
91
- getDefaultExperimentsConfig,
92
- getDefaultHtmlConfig,
93
- getDefaultOutputConfig,
94
- getDefaultPerformanceConfig,
95
- getDefaultSecurityConfig,
96
- getDefaultSourceConfig,
97
- getDefaultToolsConfig
98
- });
@@ -1,3 +0,0 @@
1
- import type { UniBuilderWebpackConfig } from '../types';
2
- export declare const createDefaultConfig: () => UniBuilderWebpackConfig;
3
- export declare const withDefaultConfig: (config: UniBuilderWebpackConfig) => UniBuilderWebpackConfig;
@@ -1,54 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var defaults_exports = {};
20
- __export(defaults_exports, {
21
- createDefaultConfig: () => createDefaultConfig,
22
- withDefaultConfig: () => withDefaultConfig
23
- });
24
- module.exports = __toCommonJS(defaults_exports);
25
- var import_defaults = require("../shared/defaults");
26
- var import_core = require("@rsbuild/core");
27
- const createDefaultConfig = () => ({
28
- dev: (0, import_defaults.getDefaultDevConfig)(),
29
- html: (0, import_defaults.getDefaultHtmlConfig)(),
30
- tools: {
31
- ...(0, import_defaults.getDefaultToolsConfig)(),
32
- cssExtract: {
33
- loaderOptions: {},
34
- pluginOptions: {}
35
- }
36
- },
37
- source: (0, import_defaults.getDefaultSourceConfig)(),
38
- output: (0, import_defaults.getDefaultOutputConfig)(),
39
- security: {
40
- ...(0, import_defaults.getDefaultSecurityConfig)(),
41
- sri: false
42
- },
43
- experiments: {
44
- ...(0, import_defaults.getDefaultExperimentsConfig)(),
45
- lazyCompilation: false
46
- },
47
- performance: (0, import_defaults.getDefaultPerformanceConfig)()
48
- });
49
- const withDefaultConfig = (config) => (0, import_core.mergeRsbuildConfig)(createDefaultConfig(), config);
50
- // Annotate the CommonJS export names for ESM import in node:
51
- 0 && (module.exports = {
52
- createDefaultConfig,
53
- withDefaultConfig
54
- });