@modern-js/app-tools 2.60.2 → 2.60.3-alpha.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. package/dist/cjs/builder/builder-rspack/index.js +0 -4
  2. package/dist/cjs/builder/builder-webpack/index.js +0 -4
  3. package/dist/cjs/builder/{builder-webpack/adapterModern.js → generator/adapterCopy.js} +8 -8
  4. package/dist/cjs/builder/generator/createBuilderProviderConfig.js +1 -1
  5. package/dist/cjs/builder/generator/getBuilderEnvironments.js +10 -2
  6. package/dist/cjs/builder/generator/index.js +8 -2
  7. package/dist/cjs/index.js +11 -1
  8. package/dist/cjs/utils/register.js +6 -8
  9. package/dist/esm/builder/builder-rspack/index.js +0 -4
  10. package/dist/esm/builder/builder-webpack/index.js +0 -4
  11. package/dist/esm/builder/{builder-webpack/adapterModern.js → generator/adapterCopy.js} +4 -4
  12. package/dist/esm/builder/generator/createBuilderProviderConfig.js +1 -1
  13. package/dist/esm/builder/generator/getBuilderEnvironments.js +10 -2
  14. package/dist/esm/builder/generator/index.js +9 -3
  15. package/dist/esm/index.js +15 -2
  16. package/dist/esm/utils/register.js +8 -10
  17. package/dist/esm-node/builder/builder-rspack/index.js +0 -4
  18. package/dist/esm-node/builder/builder-webpack/index.js +0 -4
  19. package/dist/esm-node/builder/{builder-webpack/adapterModern.js → generator/adapterCopy.js} +4 -4
  20. package/dist/esm-node/builder/generator/createBuilderProviderConfig.js +1 -1
  21. package/dist/esm-node/builder/generator/getBuilderEnvironments.js +10 -2
  22. package/dist/esm-node/builder/generator/index.js +8 -2
  23. package/dist/esm-node/index.js +11 -1
  24. package/dist/esm-node/utils/register.js +7 -9
  25. package/dist/types/builder/generator/adapterCopy.d.ts +3 -0
  26. package/dist/types/builder/generator/getBuilderEnvironments.d.ts +6 -3
  27. package/package.json +14 -14
  28. package/dist/cjs/builder/builder-rspack/adapterCopy.js +0 -101
  29. package/dist/esm/builder/builder-rspack/adapterCopy.js +0 -166
  30. package/dist/esm-node/builder/builder-rspack/adapterCopy.js +0 -67
  31. package/dist/types/builder/builder-rspack/adapterCopy.d.ts +0 -3
  32. package/dist/types/builder/builder-webpack/adapterModern.d.ts +0 -6
  33. /package/dist/cjs/builder/{builder-webpack → generator}/createCopyPattern.js +0 -0
  34. /package/dist/esm/builder/{builder-webpack → generator}/createCopyPattern.js +0 -0
  35. /package/dist/esm-node/builder/{builder-webpack → generator}/createCopyPattern.js +0 -0
  36. /package/dist/types/builder/{builder-webpack → generator}/createCopyPattern.d.ts +0 -0
@@ -22,12 +22,8 @@ __export(builder_rspack_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(builder_rspack_exports);
24
24
  var import_generator = require("../generator");
25
- var import_adapterCopy = require("./adapterCopy");
26
25
  async function createRspackBuilderForModern(options) {
27
26
  const builder = await (0, import_generator.generateBuilder)(options, "rspack");
28
- builder.addPlugins([
29
- (0, import_adapterCopy.builderPluginAdpaterCopy)(options)
30
- ]);
31
27
  return builder;
32
28
  }
33
29
  // Annotate the CommonJS export names for ESM import in node:
@@ -32,7 +32,6 @@ __export(builder_webpack_exports, {
32
32
  });
33
33
  module.exports = __toCommonJS(builder_webpack_exports);
34
34
  var import_generator = require("../generator");
35
- var import_adapterModern = require("./adapterModern");
36
35
  async function createWebpackBuilderForModern(options) {
37
36
  const builder = await (0, import_generator.generateBuilder)(options, "webpack");
38
37
  const { normalizedConfig } = options;
@@ -43,9 +42,6 @@ async function createWebpackBuilderForModern(options) {
43
42
  pluginEsbuild(esbuildOptions)
44
43
  ]);
45
44
  }
46
- builder.addPlugins([
47
- (0, import_adapterModern.builderPluginAdapterModern)(options)
48
- ]);
49
45
  return builder;
50
46
  }
51
47
  // Annotate the CommonJS export names for ESM import in node:
@@ -16,17 +16,17 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var adapterModern_exports = {};
20
- __export(adapterModern_exports, {
21
- builderPluginAdapterModern: () => builderPluginAdapterModern
19
+ var adapterCopy_exports = {};
20
+ __export(adapterCopy_exports, {
21
+ builderPluginAdapterCopy: () => builderPluginAdapterCopy
22
22
  });
23
- module.exports = __toCommonJS(adapterModern_exports);
23
+ module.exports = __toCommonJS(adapterCopy_exports);
24
24
  var import_createCopyPattern = require("./createCopyPattern");
25
- const builderPluginAdapterModern = (options) => ({
26
- name: "builder-plugin-adapter-modern",
25
+ const builderPluginAdapterCopy = (options) => ({
26
+ name: "builder-plugin-adapter-copy",
27
27
  setup(api) {
28
28
  const { normalizedConfig: modernConfig, appContext } = options;
29
- api.modifyWebpackChain((chain, { CHAIN_ID }) => {
29
+ api.modifyBundlerChain((chain, { CHAIN_ID }) => {
30
30
  if (chain.plugins.has(CHAIN_ID.PLUGIN.COPY)) {
31
31
  const defaultCopyPattern = (0, import_createCopyPattern.createPublicPattern)(appContext, modernConfig, chain);
32
32
  chain.plugin(CHAIN_ID.PLUGIN.COPY).tap((args) => {
@@ -46,5 +46,5 @@ const builderPluginAdapterModern = (options) => ({
46
46
  });
47
47
  // Annotate the CommonJS export names for ESM import in node:
48
48
  0 && (module.exports = {
49
- builderPluginAdapterModern
49
+ builderPluginAdapterCopy
50
50
  });
@@ -21,7 +21,7 @@ __export(createBuilderProviderConfig_exports, {
21
21
  createBuilderProviderConfig: () => createBuilderProviderConfig
22
22
  });
23
23
  module.exports = __toCommonJS(createBuilderProviderConfig_exports);
24
- var import_createCopyPattern = require("../builder-webpack/createCopyPattern");
24
+ var import_createCopyPattern = require("./createCopyPattern");
25
25
  function modifyOutputConfig(config, appContext) {
26
26
  const defaultCopyPattern = (0, import_createCopyPattern.createUploadPattern)(appContext, config);
27
27
  const { copy } = config.output;
@@ -23,7 +23,8 @@ __export(getBuilderEnvironments_exports, {
23
23
  module.exports = __toCommonJS(getBuilderEnvironments_exports);
24
24
  var import_uni_builder = require("@modern-js/uni-builder");
25
25
  var import_utils = require("@modern-js/utils");
26
- function getBuilderEnvironments(normalizedConfig, appContext) {
26
+ function getBuilderEnvironments(normalizedConfig, appContext, tempBuilderConfig) {
27
+ var _tempBuilderConfig_output;
27
28
  const entries = {};
28
29
  const { entrypoints = [], checkedEntries } = appContext;
29
30
  for (const { entryName, internalEntry, entry } of entrypoints) {
@@ -54,6 +55,10 @@ function getBuilderEnvironments(normalizedConfig, appContext) {
54
55
  }
55
56
  }
56
57
  };
58
+ if ((_tempBuilderConfig_output = tempBuilderConfig.output) === null || _tempBuilderConfig_output === void 0 ? void 0 : _tempBuilderConfig_output.copy) {
59
+ environments.web.output.copy = tempBuilderConfig.output.copy;
60
+ delete tempBuilderConfig.output.copy;
61
+ }
57
62
  const useNodeTarget = (0, import_utils.isProd)() ? (0, import_utils.isUseSSRBundle)(normalizedConfig) : (0, import_utils.isSSR)(normalizedConfig);
58
63
  if (useNodeTarget) {
59
64
  environments.node = {
@@ -76,7 +81,10 @@ function getBuilderEnvironments(normalizedConfig, appContext) {
76
81
  }
77
82
  };
78
83
  }
79
- return environments;
84
+ return {
85
+ environments,
86
+ builderConfig: tempBuilderConfig
87
+ };
80
88
  }
81
89
  // Annotate the CommonJS export names for ESM import in node:
82
90
  0 && (module.exports = {
@@ -33,12 +33,13 @@ __export(generator_exports, {
33
33
  module.exports = __toCommonJS(generator_exports);
34
34
  var import_uni_builder = require("@modern-js/uni-builder");
35
35
  var import_core = require("@rsbuild/core");
36
+ var import_adapterCopy = require("./adapterCopy");
36
37
  var import_createBuilderProviderConfig = require("./createBuilderProviderConfig");
37
38
  var import_getBuilderEnvironments = require("./getBuilderEnvironments");
38
39
  async function generateBuilder(options, bundlerType) {
39
40
  const { normalizedConfig, appContext } = options;
40
- const builderConfig = (0, import_createBuilderProviderConfig.createBuilderProviderConfig)(normalizedConfig, appContext);
41
- const environments = (0, import_getBuilderEnvironments.getBuilderEnvironments)(normalizedConfig, appContext);
41
+ const tempBuilderConfig = (0, import_createBuilderProviderConfig.createBuilderProviderConfig)(normalizedConfig, appContext);
42
+ const { environments, builderConfig } = (0, import_getBuilderEnvironments.getBuilderEnvironments)(normalizedConfig, appContext, tempBuilderConfig);
42
43
  builderConfig.environments = builderConfig.environments ? (0, import_core.mergeRsbuildConfig)(environments, builderConfig.environments) : environments;
43
44
  const builder = await (0, import_uni_builder.createUniBuilder)({
44
45
  cwd: appContext.appDirectory,
@@ -56,6 +57,11 @@ async function applyBuilderPlugins(builder, options) {
56
57
  builderPluginAdapterSSR(options),
57
58
  builderPluginAdapterHtml(options)
58
59
  ]);
60
+ builder.addPlugins([
61
+ (0, import_adapterCopy.builderPluginAdapterCopy)(options)
62
+ ], {
63
+ environment: "web"
64
+ });
59
65
  const { normalizedConfig } = options;
60
66
  if (!normalizedConfig.output.disableNodePolyfill) {
61
67
  const { pluginNodePolyfill } = await import("@rsbuild/plugin-node-polyfill");
package/dist/cjs/index.js CHANGED
@@ -37,6 +37,7 @@ __export(src_exports, {
37
37
  module.exports = __toCommonJS(src_exports);
38
38
  var import_path = __toESM(require("path"));
39
39
  var import_language_detector = require("@modern-js/plugin-i18n/language-detector");
40
+ var import_uni_builder = require("@modern-js/uni-builder");
40
41
  var import_utils = require("@modern-js/utils");
41
42
  var import_hooks = require("./hooks");
42
43
  var import_locale = require("./locale");
@@ -139,7 +140,16 @@ const appTools = (options = {
139
140
  async watchFiles() {
140
141
  const appContext2 = api.useAppContext();
141
142
  const config = api.useResolvedConfigContext();
142
- return await (0, import_generateWatchFiles.generateWatchFiles)(appContext2, config.source.configDir);
143
+ const files = await (0, import_generateWatchFiles.generateWatchFiles)(appContext2, config.source.configDir);
144
+ const watchFiles = (0, import_uni_builder.castArray)(config.dev.watchFiles);
145
+ watchFiles.forEach(({ type, paths }) => {
146
+ if (type === "reload-server") {
147
+ files.push(...Array.isArray(paths) ? paths : [
148
+ paths
149
+ ]);
150
+ }
151
+ });
152
+ return files;
143
153
  },
144
154
  // 这里会被 core/initWatcher 监听的文件变动触发,如果是 src 目录下的文件变动,则不做 restart
145
155
  async fileChange(e) {
@@ -83,7 +83,7 @@ const registerCompiler = async (appDir, distDir, alias) => {
83
83
  const { MODERN_NODE_LOADER } = process.env;
84
84
  if (MODERN_NODE_LOADER !== "esbuild") {
85
85
  try {
86
- const tsNode = await import("ts-node");
86
+ const tsNode = await (0, import_utils.loadFromProject)("ts-node", appDir);
87
87
  const tsNodeOptions = tsConfig["ts-node"];
88
88
  if (isTsProject) {
89
89
  tsNode.register({
@@ -100,6 +100,7 @@ const registerCompiler = async (appDir, distDir, alias) => {
100
100
  });
101
101
  }
102
102
  } catch (error) {
103
+ import_utils.logger.error(error);
103
104
  await registerEsbuild({
104
105
  isTsProject,
105
106
  tsConfig,
@@ -115,13 +116,10 @@ const registerCompiler = async (appDir, distDir, alias) => {
115
116
  }
116
117
  const tsConfigPaths = (await import("@modern-js/utils/tsconfig-paths")).default;
117
118
  if (await import_utils.fs.pathExists(appDir)) {
118
- const loaderRes = tsConfigPaths.loadConfig(appDir);
119
- if (loaderRes.resultType === "success") {
120
- tsConfigPaths.register({
121
- baseUrl: absoluteBaseUrl || "./",
122
- paths: tsPaths
123
- });
124
- }
119
+ tsConfigPaths.register({
120
+ baseUrl: absoluteBaseUrl || "./",
121
+ paths: tsPaths
122
+ });
125
123
  }
126
124
  };
127
125
  // Annotate the CommonJS export names for ESM import in node:
@@ -1,7 +1,6 @@
1
1
  import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
2
  import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
3
3
  import { generateBuilder } from "../generator";
4
- import { builderPluginAdpaterCopy } from "./adapterCopy";
5
4
  function createRspackBuilderForModern(options) {
6
5
  return _createRspackBuilderForModern.apply(this, arguments);
7
6
  }
@@ -17,9 +16,6 @@ function _createRspackBuilderForModern() {
17
16
  ];
18
17
  case 1:
19
18
  builder = _state.sent();
20
- builder.addPlugins([
21
- builderPluginAdpaterCopy(options)
22
- ]);
23
19
  return [
24
20
  2,
25
21
  builder
@@ -1,7 +1,6 @@
1
1
  import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
2
  import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
3
3
  import { generateBuilder } from "../generator";
4
- import { builderPluginAdapterModern } from "./adapterModern";
5
4
  function createWebpackBuilderForModern(options) {
6
5
  return _createWebpackBuilderForModern.apply(this, arguments);
7
6
  }
@@ -35,9 +34,6 @@ function _createWebpackBuilderForModern() {
35
34
  ]);
36
35
  _state.label = 3;
37
36
  case 3:
38
- builder.addPlugins([
39
- builderPluginAdapterModern(options)
40
- ]);
41
37
  return [
42
38
  2,
43
39
  builder
@@ -1,11 +1,11 @@
1
1
  import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
2
2
  import { createPublicPattern } from "./createCopyPattern";
3
- var builderPluginAdapterModern = function(options) {
3
+ var builderPluginAdapterCopy = function(options) {
4
4
  return {
5
- name: "builder-plugin-adapter-modern",
5
+ name: "builder-plugin-adapter-copy",
6
6
  setup: function setup(api) {
7
7
  var modernConfig = options.normalizedConfig, appContext = options.appContext;
8
- api.modifyWebpackChain(function(chain, param) {
8
+ api.modifyBundlerChain(function(chain, param) {
9
9
  var CHAIN_ID = param.CHAIN_ID;
10
10
  if (chain.plugins.has(CHAIN_ID.PLUGIN.COPY)) {
11
11
  var defaultCopyPattern = createPublicPattern(appContext, modernConfig, chain);
@@ -25,5 +25,5 @@ var builderPluginAdapterModern = function(options) {
25
25
  };
26
26
  };
27
27
  export {
28
- builderPluginAdapterModern
28
+ builderPluginAdapterCopy
29
29
  };
@@ -1,7 +1,7 @@
1
1
  import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
2
2
  import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
3
3
  import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
4
- import { createUploadPattern } from "../builder-webpack/createCopyPattern";
4
+ import { createUploadPattern } from "./createCopyPattern";
5
5
  function modifyOutputConfig(config, appContext) {
6
6
  var defaultCopyPattern = createUploadPattern(appContext, config);
7
7
  var copy = config.output.copy;
@@ -1,6 +1,7 @@
1
1
  import { SERVICE_WORKER_ENVIRONMENT_NAME } from "@modern-js/uni-builder";
2
2
  import { isProd, isSSR, isServiceWorker, isUseSSRBundle } from "@modern-js/utils";
3
- function getBuilderEnvironments(normalizedConfig, appContext) {
3
+ function getBuilderEnvironments(normalizedConfig, appContext, tempBuilderConfig) {
4
+ var _tempBuilderConfig_output;
4
5
  var entries = {};
5
6
  var _appContext_entrypoints = appContext.entrypoints, entrypoints = _appContext_entrypoints === void 0 ? [] : _appContext_entrypoints, checkedEntries = appContext.checkedEntries;
6
7
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
@@ -52,6 +53,10 @@ function getBuilderEnvironments(normalizedConfig, appContext) {
52
53
  }
53
54
  }
54
55
  };
56
+ if ((_tempBuilderConfig_output = tempBuilderConfig.output) === null || _tempBuilderConfig_output === void 0 ? void 0 : _tempBuilderConfig_output.copy) {
57
+ environments.web.output.copy = tempBuilderConfig.output.copy;
58
+ delete tempBuilderConfig.output.copy;
59
+ }
55
60
  var useNodeTarget = isProd() ? isUseSSRBundle(normalizedConfig) : isSSR(normalizedConfig);
56
61
  if (useNodeTarget) {
57
62
  environments.node = {
@@ -74,7 +79,10 @@ function getBuilderEnvironments(normalizedConfig, appContext) {
74
79
  }
75
80
  };
76
81
  }
77
- return environments;
82
+ return {
83
+ environments,
84
+ builderConfig: tempBuilderConfig
85
+ };
78
86
  }
79
87
  export {
80
88
  getBuilderEnvironments
@@ -2,6 +2,7 @@ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
2
  import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
3
3
  import { createUniBuilder } from "@modern-js/uni-builder";
4
4
  import { mergeRsbuildConfig } from "@rsbuild/core";
5
+ import { builderPluginAdapterCopy } from "./adapterCopy";
5
6
  import { createBuilderProviderConfig } from "./createBuilderProviderConfig";
6
7
  import { getBuilderEnvironments } from "./getBuilderEnvironments";
7
8
  function generateBuilder(options, bundlerType) {
@@ -9,13 +10,13 @@ function generateBuilder(options, bundlerType) {
9
10
  }
10
11
  function _generateBuilder() {
11
12
  _generateBuilder = _async_to_generator(function(options, bundlerType) {
12
- var normalizedConfig, appContext, builderConfig, environments, builder;
13
+ var normalizedConfig, appContext, tempBuilderConfig, _getBuilderEnvironments, environments, builderConfig, builder;
13
14
  return _ts_generator(this, function(_state) {
14
15
  switch (_state.label) {
15
16
  case 0:
16
17
  normalizedConfig = options.normalizedConfig, appContext = options.appContext;
17
- builderConfig = createBuilderProviderConfig(normalizedConfig, appContext);
18
- environments = getBuilderEnvironments(normalizedConfig, appContext);
18
+ tempBuilderConfig = createBuilderProviderConfig(normalizedConfig, appContext);
19
+ _getBuilderEnvironments = getBuilderEnvironments(normalizedConfig, appContext, tempBuilderConfig), environments = _getBuilderEnvironments.environments, builderConfig = _getBuilderEnvironments.builderConfig;
19
20
  builderConfig.environments = builderConfig.environments ? mergeRsbuildConfig(environments, builderConfig.environments) : environments;
20
21
  return [
21
22
  4,
@@ -63,6 +64,11 @@ function _applyBuilderPlugins() {
63
64
  builderPluginAdapterSSR(options),
64
65
  builderPluginAdapterHtml(options)
65
66
  ]);
67
+ builder.addPlugins([
68
+ builderPluginAdapterCopy(options)
69
+ ], {
70
+ environment: "web"
71
+ });
66
72
  normalizedConfig = options.normalizedConfig;
67
73
  if (!!normalizedConfig.output.disableNodePolyfill)
68
74
  return [
package/dist/esm/index.js CHANGED
@@ -1,9 +1,11 @@
1
1
  import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
2
  import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
3
3
  import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
4
+ import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
4
5
  import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
5
6
  import path from "path";
6
7
  import { getLocaleLanguage } from "@modern-js/plugin-i18n/language-detector";
8
+ import { castArray } from "@modern-js/uni-builder";
7
9
  import { cleanRequireCache, deprecatedCommands, emptyDir, getArgv, getCommand } from "@modern-js/utils";
8
10
  import { hooks } from "./hooks";
9
11
  import { i18n } from "./locale";
@@ -159,7 +161,7 @@ var appTools = function() {
159
161
  },
160
162
  watchFiles: function watchFiles() {
161
163
  return _async_to_generator(function() {
162
- var appContext2, config;
164
+ var appContext2, config, files, watchFiles2;
163
165
  return _ts_generator(this, function(_state) {
164
166
  switch (_state.label) {
165
167
  case 0:
@@ -170,9 +172,20 @@ var appTools = function() {
170
172
  generateWatchFiles(appContext2, config.source.configDir)
171
173
  ];
172
174
  case 1:
175
+ files = _state.sent();
176
+ watchFiles2 = castArray(config.dev.watchFiles);
177
+ watchFiles2.forEach(function(param) {
178
+ var type = param.type, paths = param.paths;
179
+ if (type === "reload-server") {
180
+ var _files;
181
+ (_files = files).push.apply(_files, _to_consumable_array(Array.isArray(paths) ? paths : [
182
+ paths
183
+ ]));
184
+ }
185
+ });
173
186
  return [
174
187
  2,
175
- _state.sent()
188
+ files
176
189
  ];
177
190
  }
178
191
  });
@@ -5,7 +5,7 @@ import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
5
5
  import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
6
6
  import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
7
7
  import path from "node:path";
8
- import { fs, getAliasConfig, readTsConfigByFile } from "@modern-js/utils";
8
+ import { fs, getAliasConfig, loadFromProject, logger, readTsConfigByFile } from "@modern-js/utils";
9
9
  var registerEsbuild = function() {
10
10
  var _ref = _async_to_generator(function(param) {
11
11
  var isTsProject, tsConfig, distDir, esbuildRegister;
@@ -38,7 +38,7 @@ var registerEsbuild = function() {
38
38
  }();
39
39
  var registerCompiler = function() {
40
40
  var _ref = _async_to_generator(function(appDir, distDir, alias) {
41
- var TS_CONFIG_FILENAME, tsconfigPath, isTsProject, aliasConfig, _aliasConfig_paths, paths, _aliasConfig_absoluteBaseUrl, absoluteBaseUrl, tsPaths, tsConfig, MODERN_NODE_LOADER, tsNode, tsNodeOptions, error, tsConfigPaths, loaderRes;
41
+ var TS_CONFIG_FILENAME, tsconfigPath, isTsProject, aliasConfig, _aliasConfig_paths, paths, _aliasConfig_absoluteBaseUrl, absoluteBaseUrl, tsPaths, tsConfig, MODERN_NODE_LOADER, tsNode, tsNodeOptions, error, tsConfigPaths;
42
42
  return _ts_generator(this, function(_state) {
43
43
  switch (_state.label) {
44
44
  case 0:
@@ -97,7 +97,7 @@ var registerCompiler = function() {
97
97
  ]);
98
98
  return [
99
99
  4,
100
- import("ts-node")
100
+ loadFromProject("ts-node", appDir)
101
101
  ];
102
102
  case 3:
103
103
  tsNode = _state.sent();
@@ -121,6 +121,7 @@ var registerCompiler = function() {
121
121
  ];
122
122
  case 4:
123
123
  error = _state.sent();
124
+ logger.error(error);
124
125
  return [
125
126
  4,
126
127
  registerEsbuild({
@@ -165,13 +166,10 @@ var registerCompiler = function() {
165
166
  ];
166
167
  case 11:
167
168
  if (_state.sent()) {
168
- loaderRes = tsConfigPaths.loadConfig(appDir);
169
- if (loaderRes.resultType === "success") {
170
- tsConfigPaths.register({
171
- baseUrl: absoluteBaseUrl || "./",
172
- paths: tsPaths
173
- });
174
- }
169
+ tsConfigPaths.register({
170
+ baseUrl: absoluteBaseUrl || "./",
171
+ paths: tsPaths
172
+ });
175
173
  }
176
174
  return [
177
175
  2
@@ -1,10 +1,6 @@
1
1
  import { generateBuilder } from "../generator";
2
- import { builderPluginAdpaterCopy } from "./adapterCopy";
3
2
  async function createRspackBuilderForModern(options) {
4
3
  const builder = await generateBuilder(options, "rspack");
5
- builder.addPlugins([
6
- builderPluginAdpaterCopy(options)
7
- ]);
8
4
  return builder;
9
5
  }
10
6
  export {
@@ -1,5 +1,4 @@
1
1
  import { generateBuilder } from "../generator";
2
- import { builderPluginAdapterModern } from "./adapterModern";
3
2
  async function createWebpackBuilderForModern(options) {
4
3
  const builder = await generateBuilder(options, "webpack");
5
4
  const { normalizedConfig } = options;
@@ -10,9 +9,6 @@ async function createWebpackBuilderForModern(options) {
10
9
  pluginEsbuild(esbuildOptions)
11
10
  ]);
12
11
  }
13
- builder.addPlugins([
14
- builderPluginAdapterModern(options)
15
- ]);
16
12
  return builder;
17
13
  }
18
14
  export {
@@ -1,9 +1,9 @@
1
1
  import { createPublicPattern } from "./createCopyPattern";
2
- const builderPluginAdapterModern = (options) => ({
3
- name: "builder-plugin-adapter-modern",
2
+ const builderPluginAdapterCopy = (options) => ({
3
+ name: "builder-plugin-adapter-copy",
4
4
  setup(api) {
5
5
  const { normalizedConfig: modernConfig, appContext } = options;
6
- api.modifyWebpackChain((chain, { CHAIN_ID }) => {
6
+ api.modifyBundlerChain((chain, { CHAIN_ID }) => {
7
7
  if (chain.plugins.has(CHAIN_ID.PLUGIN.COPY)) {
8
8
  const defaultCopyPattern = createPublicPattern(appContext, modernConfig, chain);
9
9
  chain.plugin(CHAIN_ID.PLUGIN.COPY).tap((args) => {
@@ -22,5 +22,5 @@ const builderPluginAdapterModern = (options) => ({
22
22
  }
23
23
  });
24
24
  export {
25
- builderPluginAdapterModern
25
+ builderPluginAdapterCopy
26
26
  };
@@ -1,4 +1,4 @@
1
- import { createUploadPattern } from "../builder-webpack/createCopyPattern";
1
+ import { createUploadPattern } from "./createCopyPattern";
2
2
  function modifyOutputConfig(config, appContext) {
3
3
  const defaultCopyPattern = createUploadPattern(appContext, config);
4
4
  const { copy } = config.output;
@@ -1,6 +1,7 @@
1
1
  import { SERVICE_WORKER_ENVIRONMENT_NAME } from "@modern-js/uni-builder";
2
2
  import { isProd, isSSR, isServiceWorker, isUseSSRBundle } from "@modern-js/utils";
3
- function getBuilderEnvironments(normalizedConfig, appContext) {
3
+ function getBuilderEnvironments(normalizedConfig, appContext, tempBuilderConfig) {
4
+ var _tempBuilderConfig_output;
4
5
  const entries = {};
5
6
  const { entrypoints = [], checkedEntries } = appContext;
6
7
  for (const { entryName, internalEntry, entry } of entrypoints) {
@@ -31,6 +32,10 @@ function getBuilderEnvironments(normalizedConfig, appContext) {
31
32
  }
32
33
  }
33
34
  };
35
+ if ((_tempBuilderConfig_output = tempBuilderConfig.output) === null || _tempBuilderConfig_output === void 0 ? void 0 : _tempBuilderConfig_output.copy) {
36
+ environments.web.output.copy = tempBuilderConfig.output.copy;
37
+ delete tempBuilderConfig.output.copy;
38
+ }
34
39
  const useNodeTarget = isProd() ? isUseSSRBundle(normalizedConfig) : isSSR(normalizedConfig);
35
40
  if (useNodeTarget) {
36
41
  environments.node = {
@@ -53,7 +58,10 @@ function getBuilderEnvironments(normalizedConfig, appContext) {
53
58
  }
54
59
  };
55
60
  }
56
- return environments;
61
+ return {
62
+ environments,
63
+ builderConfig: tempBuilderConfig
64
+ };
57
65
  }
58
66
  export {
59
67
  getBuilderEnvironments
@@ -1,11 +1,12 @@
1
1
  import { createUniBuilder } from "@modern-js/uni-builder";
2
2
  import { mergeRsbuildConfig } from "@rsbuild/core";
3
+ import { builderPluginAdapterCopy } from "./adapterCopy";
3
4
  import { createBuilderProviderConfig } from "./createBuilderProviderConfig";
4
5
  import { getBuilderEnvironments } from "./getBuilderEnvironments";
5
6
  async function generateBuilder(options, bundlerType) {
6
7
  const { normalizedConfig, appContext } = options;
7
- const builderConfig = createBuilderProviderConfig(normalizedConfig, appContext);
8
- const environments = getBuilderEnvironments(normalizedConfig, appContext);
8
+ const tempBuilderConfig = createBuilderProviderConfig(normalizedConfig, appContext);
9
+ const { environments, builderConfig } = getBuilderEnvironments(normalizedConfig, appContext, tempBuilderConfig);
9
10
  builderConfig.environments = builderConfig.environments ? mergeRsbuildConfig(environments, builderConfig.environments) : environments;
10
11
  const builder = await createUniBuilder({
11
12
  cwd: appContext.appDirectory,
@@ -23,6 +24,11 @@ async function applyBuilderPlugins(builder, options) {
23
24
  builderPluginAdapterSSR(options),
24
25
  builderPluginAdapterHtml(options)
25
26
  ]);
27
+ builder.addPlugins([
28
+ builderPluginAdapterCopy(options)
29
+ ], {
30
+ environment: "web"
31
+ });
26
32
  const { normalizedConfig } = options;
27
33
  if (!normalizedConfig.output.disableNodePolyfill) {
28
34
  const { pluginNodePolyfill } = await import("@rsbuild/plugin-node-polyfill");
@@ -1,5 +1,6 @@
1
1
  import path from "path";
2
2
  import { getLocaleLanguage } from "@modern-js/plugin-i18n/language-detector";
3
+ import { castArray } from "@modern-js/uni-builder";
3
4
  import { cleanRequireCache, deprecatedCommands, emptyDir, getArgv, getCommand } from "@modern-js/utils";
4
5
  import { hooks } from "./hooks";
5
6
  import { i18n } from "./locale";
@@ -102,7 +103,16 @@ const appTools = (options = {
102
103
  async watchFiles() {
103
104
  const appContext2 = api.useAppContext();
104
105
  const config = api.useResolvedConfigContext();
105
- return await generateWatchFiles(appContext2, config.source.configDir);
106
+ const files = await generateWatchFiles(appContext2, config.source.configDir);
107
+ const watchFiles = castArray(config.dev.watchFiles);
108
+ watchFiles.forEach(({ type, paths }) => {
109
+ if (type === "reload-server") {
110
+ files.push(...Array.isArray(paths) ? paths : [
111
+ paths
112
+ ]);
113
+ }
114
+ });
115
+ return files;
106
116
  },
107
117
  // 这里会被 core/initWatcher 监听的文件变动触发,如果是 src 目录下的文件变动,则不做 restart
108
118
  async fileChange(e) {
@@ -1,5 +1,5 @@
1
1
  import path from "node:path";
2
- import { fs, getAliasConfig, readTsConfigByFile } from "@modern-js/utils";
2
+ import { fs, getAliasConfig, loadFromProject, logger, readTsConfigByFile } from "@modern-js/utils";
3
3
  const registerEsbuild = async ({ isTsProject, tsConfig, distDir }) => {
4
4
  const esbuildRegister = await import("esbuild-register/dist/node");
5
5
  esbuildRegister.register({
@@ -50,7 +50,7 @@ const registerCompiler = async (appDir, distDir, alias) => {
50
50
  const { MODERN_NODE_LOADER } = process.env;
51
51
  if (MODERN_NODE_LOADER !== "esbuild") {
52
52
  try {
53
- const tsNode = await import("ts-node");
53
+ const tsNode = await loadFromProject("ts-node", appDir);
54
54
  const tsNodeOptions = tsConfig["ts-node"];
55
55
  if (isTsProject) {
56
56
  tsNode.register({
@@ -67,6 +67,7 @@ const registerCompiler = async (appDir, distDir, alias) => {
67
67
  });
68
68
  }
69
69
  } catch (error) {
70
+ logger.error(error);
70
71
  await registerEsbuild({
71
72
  isTsProject,
72
73
  tsConfig,
@@ -82,13 +83,10 @@ const registerCompiler = async (appDir, distDir, alias) => {
82
83
  }
83
84
  const tsConfigPaths = (await import("@modern-js/utils/tsconfig-paths")).default;
84
85
  if (await fs.pathExists(appDir)) {
85
- const loaderRes = tsConfigPaths.loadConfig(appDir);
86
- if (loaderRes.resultType === "success") {
87
- tsConfigPaths.register({
88
- baseUrl: absoluteBaseUrl || "./",
89
- paths: tsPaths
90
- });
91
- }
86
+ tsConfigPaths.register({
87
+ baseUrl: absoluteBaseUrl || "./",
88
+ paths: tsPaths
89
+ });
92
90
  }
93
91
  };
94
92
  export {
@@ -0,0 +1,3 @@
1
+ import type { RsbuildPlugin } from '@modern-js/uni-builder';
2
+ import type { BuilderOptions } from '../shared';
3
+ export declare const builderPluginAdapterCopy: (options: BuilderOptions<'shared'>) => RsbuildPlugin;
@@ -1,5 +1,8 @@
1
1
  import type { IAppContext } from '@modern-js/core';
2
- import type { AppNormalizedConfig } from '../../types';
3
- export declare function getBuilderEnvironments(normalizedConfig: AppNormalizedConfig<'shared'>, appContext: IAppContext): {
4
- [name: string]: import("@rsbuild/core").EnvironmentConfig;
2
+ import type { AppNormalizedConfig, Bundler } from '../../types';
3
+ export declare function getBuilderEnvironments<B extends Bundler>(normalizedConfig: AppNormalizedConfig<'shared'>, appContext: IAppContext, tempBuilderConfig: Omit<AppNormalizedConfig<B>, 'plugins'>): {
4
+ environments: {
5
+ [name: string]: import("@rsbuild/core").EnvironmentConfig;
6
+ };
7
+ builderConfig: Omit<AppNormalizedConfig<B_1>, "plugins">;
5
8
  };
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "modern",
16
16
  "modern.js"
17
17
  ],
18
- "version": "2.60.2",
18
+ "version": "2.60.3-alpha.0",
19
19
  "jsnext:source": "./src/index.ts",
20
20
  "types": "./dist/types/index.d.ts",
21
21
  "main": "./dist/cjs/index.js",
@@ -77,8 +77,8 @@
77
77
  "@babel/parser": "^7.22.15",
78
78
  "@babel/traverse": "^7.23.2",
79
79
  "@babel/types": "^7.24.7",
80
- "@rsbuild/core": "1.0.7",
81
- "@rsbuild/plugin-node-polyfill": "1.0.4",
80
+ "@rsbuild/core": "~1.0.11",
81
+ "@rsbuild/plugin-node-polyfill": "~1.0.4",
82
82
  "@swc/helpers": "0.5.13",
83
83
  "@vercel/nft": "^0.26.4",
84
84
  "es-module-lexer": "^1.1.0",
@@ -89,21 +89,21 @@
89
89
  "pkg-types": "^1.1.0",
90
90
  "std-env": "^3.7.0",
91
91
  "@modern-js/core": "2.60.2",
92
- "@modern-js/node-bundle-require": "2.60.2",
93
92
  "@modern-js/plugin": "2.60.2",
93
+ "@modern-js/prod-server": "2.60.2",
94
94
  "@modern-js/plugin-i18n": "2.60.2",
95
+ "@modern-js/server": "2.60.2",
96
+ "@modern-js/types": "2.60.2",
97
+ "@modern-js/node-bundle-require": "2.60.2",
95
98
  "@modern-js/plugin-data-loader": "2.60.2",
96
99
  "@modern-js/rsbuild-plugin-esbuild": "2.60.2",
97
- "@modern-js/prod-server": "2.60.2",
98
- "@modern-js/server-core": "2.60.2",
99
- "@modern-js/server": "2.60.2",
100
+ "@modern-js/server-utils": "2.60.2",
100
101
  "@modern-js/uni-builder": "2.60.2",
101
- "@modern-js/types": "2.60.2",
102
- "@modern-js/utils": "2.60.2",
103
- "@modern-js/server-utils": "2.60.2"
102
+ "@modern-js/server-core": "2.60.2",
103
+ "@modern-js/utils": "2.60.2"
104
104
  },
105
105
  "devDependencies": {
106
- "@rsbuild/plugin-webpack-swc": "1.0.3",
106
+ "@rsbuild/plugin-webpack-swc": "~1.0.3",
107
107
  "@types/babel__traverse": "7.20.6",
108
108
  "@types/jest": "^29",
109
109
  "@types/node": "^16",
@@ -111,9 +111,9 @@
111
111
  "ts-node": "^10.9.1",
112
112
  "tsconfig-paths": "^4.2.0",
113
113
  "typescript": "^5",
114
- "webpack": "^5.94.0",
115
- "@scripts/build": "2.60.2",
116
- "@scripts/jest-config": "2.60.2"
114
+ "webpack": "^5.95.0",
115
+ "@scripts/jest-config": "2.60.2",
116
+ "@scripts/build": "2.60.2"
117
117
  },
118
118
  "peerDependencies": {
119
119
  "ts-node": "^10.7.0",
@@ -1,101 +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 adapterCopy_exports = {};
30
- __export(adapterCopy_exports, {
31
- builderPluginAdpaterCopy: () => builderPluginAdpaterCopy
32
- });
33
- module.exports = __toCommonJS(adapterCopy_exports);
34
- var import_path = __toESM(require("path"));
35
- var import_utils = require("@modern-js/utils");
36
- var import_fs_extra = __toESM(require("@modern-js/utils/fs-extra"));
37
- var import_shared = require("../shared");
38
- const builderPluginAdpaterCopy = (options) => ({
39
- name: "builder-plugin-adapter-rspack-copy",
40
- setup(api) {
41
- let publicPath;
42
- api.modifyBundlerChain((chain, { CHAIN_ID }) => {
43
- chain.plugin(CHAIN_ID.PLUGIN.COPY).tap((args) => {
44
- var _args_;
45
- return [
46
- {
47
- patterns: [
48
- ...((_args_ = args[0]) === null || _args_ === void 0 ? void 0 : _args_.patterns) || [],
49
- ...createConfigBuiltinCopy(options)
50
- ]
51
- }
52
- ];
53
- });
54
- });
55
- api.modifyRspackConfig((config) => {
56
- var _config_output;
57
- publicPath = (_config_output = config.output) === null || _config_output === void 0 ? void 0 : _config_output.publicPath;
58
- });
59
- api.onDevCompileDone(async () => {
60
- await transformHtmlFiles();
61
- });
62
- api.onAfterBuild(async () => {
63
- await transformHtmlFiles();
64
- });
65
- async function transformHtmlFiles() {
66
- var _normalizedConfig_output_distPath;
67
- const { normalizedConfig } = options;
68
- const publicDir = import_path.default.resolve(((_normalizedConfig_output_distPath = normalizedConfig.output.distPath) === null || _normalizedConfig_output_distPath === void 0 ? void 0 : _normalizedConfig_output_distPath.root) || "./dist", "./public");
69
- if (!import_fs_extra.default.existsSync(publicDir) || !import_fs_extra.default.statSync(publicDir).isDirectory()) {
70
- return;
71
- }
72
- const HTML_REGEXP = /\.html?$/;
73
- const filepaths = (await import_fs_extra.default.readdir(publicDir)).map((file) => import_path.default.resolve(publicDir, file));
74
- await Promise.all(filepaths.filter((file) => HTML_REGEXP.test(file)).map(async (file) => {
75
- const content = await import_fs_extra.default.readFile(file, "utf-8");
76
- if (publicPath && typeof publicPath === "string") {
77
- await import_fs_extra.default.writeFile(file, content.replace(/<%=\s*assetPrefix\s*%>/g, (0, import_utils.removeTailSlash)(publicPath)));
78
- } else {
79
- import_utils.logger.warn(`Expect get a string from \`publicPath\`, but receive \`${typeof publicPath}\`.`);
80
- await import_fs_extra.default.writeFile(file, content.replace(/<%=\s*assetPrefix\s*%>/g, (0, import_utils.removeTailSlash)("/")));
81
- }
82
- }));
83
- }
84
- }
85
- });
86
- function createConfigBuiltinCopy(options) {
87
- const { normalizedConfig, appContext } = options;
88
- const { publicDir } = (0, import_shared.createCopyInfo)(appContext, normalizedConfig);
89
- return [
90
- {
91
- from: "**/*",
92
- to: "public",
93
- context: publicDir,
94
- noErrorOnMissing: true
95
- }
96
- ];
97
- }
98
- // Annotate the CommonJS export names for ESM import in node:
99
- 0 && (module.exports = {
100
- builderPluginAdpaterCopy
101
- });
@@ -1,166 +0,0 @@
1
- import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
- import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
3
- import { _ as _type_of } from "@swc/helpers/_/_type_of";
4
- import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
5
- import path from "path";
6
- import { logger, removeTailSlash } from "@modern-js/utils";
7
- import fs from "@modern-js/utils/fs-extra";
8
- import { createCopyInfo } from "../shared";
9
- var builderPluginAdpaterCopy = function(options) {
10
- return {
11
- name: "builder-plugin-adapter-rspack-copy",
12
- setup: function setup(api) {
13
- var publicPath;
14
- api.modifyBundlerChain(function(chain, param) {
15
- var CHAIN_ID = param.CHAIN_ID;
16
- chain.plugin(CHAIN_ID.PLUGIN.COPY).tap(function(args) {
17
- var _args_;
18
- return [
19
- {
20
- patterns: _to_consumable_array(((_args_ = args[0]) === null || _args_ === void 0 ? void 0 : _args_.patterns) || []).concat(_to_consumable_array(createConfigBuiltinCopy(options)))
21
- }
22
- ];
23
- });
24
- });
25
- api.modifyRspackConfig(function(config) {
26
- var _config_output;
27
- publicPath = (_config_output = config.output) === null || _config_output === void 0 ? void 0 : _config_output.publicPath;
28
- });
29
- api.onDevCompileDone(/* @__PURE__ */ _async_to_generator(function() {
30
- return _ts_generator(this, function(_state) {
31
- switch (_state.label) {
32
- case 0:
33
- return [
34
- 4,
35
- transformHtmlFiles()
36
- ];
37
- case 1:
38
- _state.sent();
39
- return [
40
- 2
41
- ];
42
- }
43
- });
44
- }));
45
- api.onAfterBuild(/* @__PURE__ */ _async_to_generator(function() {
46
- return _ts_generator(this, function(_state) {
47
- switch (_state.label) {
48
- case 0:
49
- return [
50
- 4,
51
- transformHtmlFiles()
52
- ];
53
- case 1:
54
- _state.sent();
55
- return [
56
- 2
57
- ];
58
- }
59
- });
60
- }));
61
- function transformHtmlFiles() {
62
- return _transformHtmlFiles.apply(this, arguments);
63
- }
64
- function _transformHtmlFiles() {
65
- _transformHtmlFiles = /** transform public/*.html manaully */
66
- _async_to_generator(function() {
67
- var _normalizedConfig_output_distPath, normalizedConfig, publicDir, HTML_REGEXP, filepaths;
68
- return _ts_generator(this, function(_state) {
69
- switch (_state.label) {
70
- case 0:
71
- normalizedConfig = options.normalizedConfig;
72
- publicDir = path.resolve(((_normalizedConfig_output_distPath = normalizedConfig.output.distPath) === null || _normalizedConfig_output_distPath === void 0 ? void 0 : _normalizedConfig_output_distPath.root) || "./dist", "./public");
73
- if (!fs.existsSync(publicDir) || !fs.statSync(publicDir).isDirectory()) {
74
- return [
75
- 2
76
- ];
77
- }
78
- HTML_REGEXP = /\.html?$/;
79
- return [
80
- 4,
81
- fs.readdir(publicDir)
82
- ];
83
- case 1:
84
- filepaths = _state.sent().map(function(file) {
85
- return path.resolve(publicDir, file);
86
- });
87
- return [
88
- 4,
89
- Promise.all(filepaths.filter(function(file) {
90
- return HTML_REGEXP.test(file);
91
- }).map(function() {
92
- var _ref = _async_to_generator(function(file) {
93
- var content;
94
- return _ts_generator(this, function(_state2) {
95
- switch (_state2.label) {
96
- case 0:
97
- return [
98
- 4,
99
- fs.readFile(file, "utf-8")
100
- ];
101
- case 1:
102
- content = _state2.sent();
103
- if (!(publicPath && typeof publicPath === "string"))
104
- return [
105
- 3,
106
- 3
107
- ];
108
- return [
109
- 4,
110
- fs.writeFile(file, content.replace(/<%=\s*assetPrefix\s*%>/g, removeTailSlash(publicPath)))
111
- ];
112
- case 2:
113
- _state2.sent();
114
- return [
115
- 3,
116
- 5
117
- ];
118
- case 3:
119
- logger.warn("Expect get a string from `publicPath`, but receive `".concat(typeof publicPath === "undefined" ? "undefined" : _type_of(publicPath), "`."));
120
- return [
121
- 4,
122
- fs.writeFile(file, content.replace(/<%=\s*assetPrefix\s*%>/g, removeTailSlash("/")))
123
- ];
124
- case 4:
125
- _state2.sent();
126
- _state2.label = 5;
127
- case 5:
128
- return [
129
- 2
130
- ];
131
- }
132
- });
133
- });
134
- return function(file) {
135
- return _ref.apply(this, arguments);
136
- };
137
- }()))
138
- ];
139
- case 2:
140
- _state.sent();
141
- return [
142
- 2
143
- ];
144
- }
145
- });
146
- });
147
- return _transformHtmlFiles.apply(this, arguments);
148
- }
149
- }
150
- };
151
- };
152
- function createConfigBuiltinCopy(options) {
153
- var normalizedConfig = options.normalizedConfig, appContext = options.appContext;
154
- var publicDir = createCopyInfo(appContext, normalizedConfig).publicDir;
155
- return [
156
- {
157
- from: "**/*",
158
- to: "public",
159
- context: publicDir,
160
- noErrorOnMissing: true
161
- }
162
- ];
163
- }
164
- export {
165
- builderPluginAdpaterCopy
166
- };
@@ -1,67 +0,0 @@
1
- import path from "path";
2
- import { logger, removeTailSlash } from "@modern-js/utils";
3
- import fs from "@modern-js/utils/fs-extra";
4
- import { createCopyInfo } from "../shared";
5
- const builderPluginAdpaterCopy = (options) => ({
6
- name: "builder-plugin-adapter-rspack-copy",
7
- setup(api) {
8
- let publicPath;
9
- api.modifyBundlerChain((chain, { CHAIN_ID }) => {
10
- chain.plugin(CHAIN_ID.PLUGIN.COPY).tap((args) => {
11
- var _args_;
12
- return [
13
- {
14
- patterns: [
15
- ...((_args_ = args[0]) === null || _args_ === void 0 ? void 0 : _args_.patterns) || [],
16
- ...createConfigBuiltinCopy(options)
17
- ]
18
- }
19
- ];
20
- });
21
- });
22
- api.modifyRspackConfig((config) => {
23
- var _config_output;
24
- publicPath = (_config_output = config.output) === null || _config_output === void 0 ? void 0 : _config_output.publicPath;
25
- });
26
- api.onDevCompileDone(async () => {
27
- await transformHtmlFiles();
28
- });
29
- api.onAfterBuild(async () => {
30
- await transformHtmlFiles();
31
- });
32
- async function transformHtmlFiles() {
33
- var _normalizedConfig_output_distPath;
34
- const { normalizedConfig } = options;
35
- const publicDir = path.resolve(((_normalizedConfig_output_distPath = normalizedConfig.output.distPath) === null || _normalizedConfig_output_distPath === void 0 ? void 0 : _normalizedConfig_output_distPath.root) || "./dist", "./public");
36
- if (!fs.existsSync(publicDir) || !fs.statSync(publicDir).isDirectory()) {
37
- return;
38
- }
39
- const HTML_REGEXP = /\.html?$/;
40
- const filepaths = (await fs.readdir(publicDir)).map((file) => path.resolve(publicDir, file));
41
- await Promise.all(filepaths.filter((file) => HTML_REGEXP.test(file)).map(async (file) => {
42
- const content = await fs.readFile(file, "utf-8");
43
- if (publicPath && typeof publicPath === "string") {
44
- await fs.writeFile(file, content.replace(/<%=\s*assetPrefix\s*%>/g, removeTailSlash(publicPath)));
45
- } else {
46
- logger.warn(`Expect get a string from \`publicPath\`, but receive \`${typeof publicPath}\`.`);
47
- await fs.writeFile(file, content.replace(/<%=\s*assetPrefix\s*%>/g, removeTailSlash("/")));
48
- }
49
- }));
50
- }
51
- }
52
- });
53
- function createConfigBuiltinCopy(options) {
54
- const { normalizedConfig, appContext } = options;
55
- const { publicDir } = createCopyInfo(appContext, normalizedConfig);
56
- return [
57
- {
58
- from: "**/*",
59
- to: "public",
60
- context: publicDir,
61
- noErrorOnMissing: true
62
- }
63
- ];
64
- }
65
- export {
66
- builderPluginAdpaterCopy
67
- };
@@ -1,3 +0,0 @@
1
- import type { RsbuildPlugin } from '@modern-js/uni-builder';
2
- import { type BuilderOptions } from '../shared';
3
- export declare const builderPluginAdpaterCopy: (options: BuilderOptions<'rspack'>) => RsbuildPlugin;
@@ -1,6 +0,0 @@
1
- import type { RsbuildPlugin } from '@modern-js/uni-builder';
2
- import type { BuilderOptions } from '../shared';
3
- /**
4
- * Provides default configuration consistent with modern.js v1
5
- */
6
- export declare const builderPluginAdapterModern: (options: BuilderOptions<'webpack'>) => RsbuildPlugin;