@umijs/plugins 4.0.65 → 4.0.66

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/antd.js CHANGED
@@ -36,8 +36,10 @@ var import_assert = __toESM(require("assert"));
36
36
  var import_path = require("path");
37
37
  var import_umi = require("umi");
38
38
  var import_plugin_utils = require("umi/plugin-utils");
39
+ var import_constants = require("./constants");
39
40
  var import_resolveProjectDep = require("./utils/resolveProjectDep");
40
41
  var import_withTmpPath = require("./utils/withTmpPath");
42
+ var ANTD_TEMPLATES_DIR = (0, import_path.join)(import_constants.TEMPLATES_DIR, "antd");
41
43
  var antd_default = (api) => {
42
44
  let pkgPath;
43
45
  let antdVersion = "4.0.0";
@@ -176,7 +178,7 @@ var antd_default = (api) => {
176
178
  configProvider: withConfigProvider && JSON.stringify(api.config.antd.configProvider),
177
179
  appConfig: appComponentAvailable && JSON.stringify(api.config.antd.appConfig)
178
180
  },
179
- tplPath: (0, import_path.join)(__dirname, "../tpls/antd-runtime.ts.tpl")
181
+ tplPath: (0, import_plugin_utils.winPath)((0, import_path.join)(ANTD_TEMPLATES_DIR, "runtime.ts.tpl"))
180
182
  });
181
183
  api.writeTmpFile({
182
184
  path: "types.d.ts",
@@ -223,13 +225,17 @@ export type IRuntimeConfig = {
223
225
  return [];
224
226
  });
225
227
  api.addEntryImportsAhead(() => {
228
+ const isAntd5 = antdVersion.startsWith("5");
226
229
  const style = api.config.antd.style || "less";
227
- const doNotImportLess = api.config.antd.import && !api.appData.vite || antdVersion.startsWith("5");
228
- return doNotImportLess ? [] : [
229
- {
230
+ const imports = [];
231
+ if (isAntd5) {
232
+ imports.push({ source: "antd/dist/reset.css" });
233
+ } else if (!api.config.antd.import || api.appData.vite) {
234
+ imports.push({
230
235
  source: style === "less" ? "antd/dist/antd.less" : "antd/dist/antd.css"
231
- }
232
- ];
236
+ });
237
+ }
238
+ return imports;
233
239
  });
234
240
  };
235
241
  // Annotate the CommonJS export names for ESM import in node:
@@ -0,0 +1 @@
1
+ export declare const TEMPLATES_DIR: string;
@@ -0,0 +1,30 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/constants.ts
20
+ var constants_exports = {};
21
+ __export(constants_exports, {
22
+ TEMPLATES_DIR: () => TEMPLATES_DIR
23
+ });
24
+ module.exports = __toCommonJS(constants_exports);
25
+ var import_path = require("path");
26
+ var TEMPLATES_DIR = (0, import_path.join)(__dirname, "../templates");
27
+ // Annotate the CommonJS export names for ESM import in node:
28
+ 0 && (module.exports = {
29
+ TEMPLATES_DIR
30
+ });
package/dist/locale.js CHANGED
@@ -37,8 +37,10 @@ var import_fs = require("fs");
37
37
  var import_path = require("path");
38
38
  var import_umi = require("umi");
39
39
  var import_plugin_utils = require("umi/plugin-utils");
40
+ var import_constants = require("./constants");
40
41
  var import_localeUtils = require("./utils/localeUtils");
41
42
  var import_withTmpPath = require("./utils/withTmpPath");
43
+ var LOCALE_TEMPLATES_DIR = (0, import_path.join)(import_constants.TEMPLATES_DIR, "locale");
42
44
  var packageNormalize = (packageName) => packageName.replace(/[@\/\-.]/g, "_");
43
45
  var locale_default = (api) => {
44
46
  let hasAntd = false;
@@ -108,7 +110,7 @@ var locale_default = (api) => {
108
110
  api.onGenerateFiles(async () => {
109
111
  var _a, _b, _c, _d;
110
112
  const localeTpl = (0, import_fs.readFileSync)(
111
- (0, import_path.join)(__dirname, "../libs/locale/locale.tpl"),
113
+ (0, import_path.join)(LOCALE_TEMPLATES_DIR, "locale.tpl"),
112
114
  "utf-8"
113
115
  );
114
116
  const resolveKey = api.config.moment2dayjs ? "dayjs" : "moment";
@@ -165,7 +167,7 @@ var locale_default = (api) => {
165
167
  path: "locale.tsx"
166
168
  });
167
169
  const localeExportsTpl = (0, import_fs.readFileSync)(
168
- (0, import_path.join)(__dirname, "../libs/locale/localeExports.tpl"),
170
+ (0, import_path.join)(LOCALE_TEMPLATES_DIR, "localeExports.tpl"),
169
171
  "utf-8"
170
172
  );
171
173
  const localeDirName = "locales";
@@ -197,7 +199,7 @@ var locale_default = (api) => {
197
199
  })
198
200
  });
199
201
  const runtimeTpl = (0, import_fs.readFileSync)(
200
- (0, import_path.join)(__dirname, "../libs/locale/runtime.tpl"),
202
+ (0, import_path.join)(LOCALE_TEMPLATES_DIR, "runtime.tpl"),
201
203
  "utf-8"
202
204
  );
203
205
  api.writeTmpFile({
@@ -207,7 +209,7 @@ var locale_default = (api) => {
207
209
  })
208
210
  });
209
211
  const selectLang = (0, import_fs.readFileSync)(
210
- (0, import_path.join)(__dirname, "../libs/locale/SelectLang.tpl"),
212
+ (0, import_path.join)(LOCALE_TEMPLATES_DIR, "SelectLang.tpl"),
211
213
  "utf-8"
212
214
  );
213
215
  api.writeTmpFile({
package/dist/mf.js CHANGED
@@ -25,10 +25,12 @@ module.exports = __toCommonJS(mf_exports);
25
25
  var import_fs = require("fs");
26
26
  var import_path = require("path");
27
27
  var import_plugin_utils = require("umi/plugin-utils");
28
+ var import_constants = require("./constants");
28
29
  var import_mfUtils = require("./utils/mfUtils");
29
30
  var { isEmpty } = import_plugin_utils.lodash;
30
31
  var mfSetupPathFileName = "_mf_setup-public-path.js";
31
32
  var mfAsyncEntryFileName = "asyncEntry.ts";
33
+ var MF_TEMPLATES_DIR = (0, import_path.join)(import_constants.TEMPLATES_DIR, "mf");
32
34
  function mf(api) {
33
35
  api.describe({
34
36
  key: "mf",
@@ -121,7 +123,7 @@ function mf(api) {
121
123
  context: {
122
124
  remoteCodeString: (0, import_mfUtils.toRemotesCodeString)(remotes)
123
125
  },
124
- tplPath: (0, import_path.join)(__dirname, "../tpls/mf-runtime.ts.tpl")
126
+ tplPath: (0, import_plugin_utils.winPath)((0, import_path.join)(MF_TEMPLATES_DIR, "runtime.ts.tpl"))
125
127
  });
126
128
  if (api.env === "development" && api.config.mfsu) {
127
129
  return;
@@ -263,15 +263,24 @@ export { MicroAppLink } from './MicroAppLink';
263
263
  key: "onLocalProxyStart",
264
264
  type: api.ApplyPluginsType.event
265
265
  });
266
+ const modifyLocalProxyOpts = await api.applyPlugins({
267
+ key: "modifyLocalProxyOpts",
268
+ type: api.ApplyPluginsType.modify,
269
+ initialValue: {}
270
+ }) ?? {};
271
+ const localProxyOpts = {
272
+ target: masterEntry,
273
+ secure: false,
274
+ ignorePath: false,
275
+ followRedirects: false,
276
+ changeOrigin: true,
277
+ selfHandleResponse: true,
278
+ ...modifyLocalProxyOpts
279
+ };
266
280
  return (0, import_http_proxy_middleware.createProxyMiddleware)(
267
281
  (pathname) => pathname !== "/local-dev-server",
268
282
  {
269
- target: masterEntry,
270
- secure: false,
271
- ignorePath: false,
272
- followRedirects: false,
273
- changeOrigin: true,
274
- selfHandleResponse: true,
283
+ ...localProxyOpts,
275
284
  onProxyReq(proxyReq) {
276
285
  api.applyPlugins({
277
286
  key: "onLocalProxyReq",
@@ -284,13 +293,18 @@ export { MicroAppLink } from './MicroAppLink';
284
293
  async (responseBuffer, proxyRes, req2, res2) => {
285
294
  var _a2;
286
295
  if (proxyRes.statusCode === 302) {
287
- const hostname = req2.hostname;
296
+ const { ignorePath = false } = localProxyOpts;
297
+ const { hostname, url, protocol } = req2;
288
298
  const port = process.env.PORT || ((_a2 = api.appData) == null ? void 0 : _a2.port);
289
- const goto = `${hostname}:${port}`;
290
- const redirectUrl = proxyRes.headers.location.replace(
291
- encodeURIComponent(new URL(masterEntry).hostname),
292
- encodeURIComponent(goto)
293
- ) || masterEntry;
299
+ const gotoBasePart = `${protocol}://${hostname}:${port}${ignorePath && url ? url : "/"}`;
300
+ const fromBasePart = masterEntry;
301
+ const locationUrl = proxyRes.headers.location || "";
302
+ const [originAndPath, searchParams] = locationUrl.split("?");
303
+ const searchHandled = searchParams ? `?${searchParams.replace(
304
+ encodeURIComponent(fromBasePart),
305
+ encodeURIComponent(gotoBasePart)
306
+ )}` : "";
307
+ const redirectUrl = `${originAndPath}${searchHandled}`;
294
308
  const redirectMessage = `[@umijs/plugin-qiankun]: redirect to ${redirectUrl}`;
295
309
  api.logger.info(redirectMessage);
296
310
  res2.statusCode = 302;
@@ -3,6 +3,7 @@
3
3
  __USE_MODEL__;
4
4
  import concat from 'lodash/concat';
5
5
  import mergeWith from 'lodash/mergeWith';
6
+ import isEqual from 'lodash/isEqual';
6
7
  import noop from 'lodash/noop';
7
8
  import {
8
9
  FrameworkConfiguration,
@@ -58,25 +59,19 @@ export type Props = {
58
59
  className?: string;
59
60
  } & Record<string, any>;
60
61
 
61
- function unmountMicroApp(
62
- microApp?: MicroAppType,
63
- updatingPromise?: Promise<void>,
64
- ) {
62
+ function unmountMicroApp(microApp?: MicroAppType) {
65
63
  if (microApp) {
66
- microApp.mountPromise.then(() => {
67
- switch (microApp.getStatus()) {
68
- case 'MOUNTED':
69
- microApp.unmount();
70
- break;
71
- case 'UPDATING':
72
- // UPDATING 阶段 updatingPromise 一定存在
73
- updatingPromise!.then(() => microApp.unmount());
74
- break;
75
- default:
76
- break;
77
- }
78
- });
64
+ microApp.mountPromise.then(() => microApp.unmount());
65
+ }
66
+ }
67
+
68
+ function useDeepCompare<T>(value: T): T {
69
+ const ref = useRef<T>(value);
70
+ if (!isEqual(value, ref.current)) {
71
+ ref.current = value;
79
72
  }
73
+
74
+ return ref.current;
80
75
  }
81
76
 
82
77
  let noneMounted = true;
@@ -159,10 +154,7 @@ export const MicroApp = forwardRef(
159
154
  const stateForSlave = (useModel || noop)(
160
155
  qiankunStateForSlaveModelNamespace,
161
156
  );
162
- const {
163
- entry,
164
- props: { settings: settingsFromConfig = {}, ...propsFromConfig } = {},
165
- } = appConfig || {};
157
+ const { entry, props: { settings: settingsFromConfig = {}, ...propsFromConfig } = {} } = appConfig || {};
166
158
 
167
159
  useEffect(() => {
168
160
  setComponentError(null);
@@ -231,8 +223,7 @@ export const MicroApp = forwardRef(
231
223
  },
232
224
  );
233
225
 
234
- return () =>
235
- unmountMicroApp(microAppRef.current, updatingPromise.current);
226
+ return () => unmountMicroApp(microAppRef.current, updatingPromise.current);
236
227
  }, [name]);
237
228
 
238
229
  useEffect(() => {
@@ -285,7 +276,7 @@ export const MicroApp = forwardRef(
285
276
  }
286
277
 
287
278
  return noop;
288
- }, Object.values({ ...stateForSlave, ...propsFromParams }));
279
+ }, [useDeepCompare({ ...stateForSlave, ...propsFromParams })]);
289
280
 
290
281
  // 未配置自定义 loader 且开启了 autoSetLoading 场景下,使用插件默认的 loader,否则使用自定义 loader
291
282
  const microAppLoader =
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@umijs/plugins",
3
- "version": "4.0.65",
3
+ "version": "4.0.66",
4
4
  "description": "@umijs/plugins",
5
5
  "homepage": "https://github.com/umijs/umi/tree/master/packages/plugins#readme",
6
6
  "bugs": "https://github.com/umijs/umi/issues",
@@ -14,7 +14,7 @@
14
14
  "files": [
15
15
  "dist",
16
16
  "libs",
17
- "tpls"
17
+ "templates"
18
18
  ],
19
19
  "dependencies": {
20
20
  "@ahooksjs/use-request": "^2.0.0",
@@ -42,12 +42,12 @@
42
42
  "styled-components": "6.0.0-beta.9",
43
43
  "tslib": "^2",
44
44
  "warning": "^4.0.3",
45
- "@umijs/bundler-utils": "4.0.65",
45
+ "@umijs/bundler-utils": "4.0.66",
46
46
  "@umijs/valtio": "1.0.3"
47
47
  },
48
48
  "devDependencies": {
49
49
  "antd": "^4.24.1",
50
- "umi": "4.0.65"
50
+ "umi": "4.0.66"
51
51
  },
52
52
  "publishConfig": {
53
53
  "access": "public"
@@ -13,30 +13,32 @@ import {
13
13
  import { ApplyPluginsType } from 'umi';
14
14
  import { getPluginManager } from '../core/plugin';
15
15
 
16
+ let cacheAntdConfig = null;
17
+
18
+ const getAntdConfig = () => {
19
+ if(!cacheAntdConfig){
20
+ cacheAntdConfig = getPluginManager().applyPlugins({
21
+ key: 'antd',
22
+ type: ApplyPluginsType.modify,
23
+ initialValue: {
24
+ {{#configProvider}}
25
+ ...{{{configProvider}}},
26
+ {{/configProvider}}
27
+ {{#appConfig}}
28
+ appConfig: {{{appConfig}}},
29
+ {{/appConfig}}
30
+ },
31
+ });
32
+ }
33
+ return cacheAntdConfig;
34
+ }
35
+
16
36
  export function rootContainer(rawContainer) {
17
37
  const {
18
- appConfig: finalAppConfig = {},
38
+ appConfig,
19
39
  ...finalConfigProvider
20
- } = getPluginManager().applyPlugins({
21
- key: 'antd',
22
- type: ApplyPluginsType.modify,
23
- initialValue: {
24
- {{#configProvider}}
25
- ...{{{configProvider}}},
26
- {{/configProvider}}
27
- {{#appConfig}}
28
- appConfig: {{{appConfig}}},
29
- {{/appConfig}}
30
- },
31
- });
32
-
40
+ } = getAntdConfig();
33
41
  let container = rawContainer;
34
-
35
- {{#appConfig}}
36
- // The App component should be under ConfigProvider
37
- container = <App {...finalAppConfig}>{container}</App>;
38
- {{/appConfig}}
39
-
40
42
  {{#configProvider}}
41
43
  if (finalConfigProvider.prefixCls) {
42
44
  Modal.config({
@@ -61,3 +63,14 @@ export function rootContainer(rawContainer) {
61
63
 
62
64
  return container;
63
65
  }
66
+
67
+ {{#appConfig}}
68
+ // The App component should be under ConfigProvider
69
+ // plugin-locale has other ConfigProvider
70
+ export function innerProvider(container: any) {
71
+ const {
72
+ appConfig: finalAppConfig = {},
73
+ } = getAntdConfig();
74
+ return <App {...finalAppConfig}>{container}</App>;
75
+ }
76
+ {{/appConfig}}
File without changes
File without changes
File without changes
File without changes