@umijs/preset-umi 4.0.34 → 4.0.35

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.
@@ -152,14 +152,8 @@ umi build --clean
152
152
  const markupArgs = await (0, import_getMarkupArgs.getMarkupArgs)({ api });
153
153
  const finalMarkUpArgs = {
154
154
  ...markupArgs,
155
- styles: markupArgs.styles.concat(api.config.vite ? [] : [
156
- ...(assetsMap["framework.css"] || []).map((src) => ({ src })),
157
- ...(assetsMap["umi.css"] || []).map((src) => ({ src }))
158
- ]),
159
- scripts: (api.config.vite ? [] : [
160
- ...(assetsMap["framework.js"] || []).map((src) => ({ src })),
161
- ...(assetsMap["umi.js"] || []).map((src) => ({ src }))
162
- ]).concat(markupArgs.scripts),
155
+ styles: markupArgs.styles.concat(api.config.vite ? [] : [...(assetsMap["umi.css"] || []).map((src) => ({ src }))]),
156
+ scripts: (api.config.vite ? [] : [...(assetsMap["umi.js"] || []).map((src) => ({ src }))]).concat(markupArgs.scripts),
163
157
  esmScript: !!opts.config.esm || vite,
164
158
  path: "/"
165
159
  };
@@ -32,7 +32,7 @@ setupWorkerEnv();
32
32
  var bundlerWebpackPath = (0, import_path.dirname)(require.resolve("@umijs/bundler-webpack"));
33
33
  var bufferedRequest = [];
34
34
  async function start() {
35
- var _a, _b, _c, _d, _e, _f, _g;
35
+ var _a, _b, _c, _d, _e, _f, _g, _h;
36
36
  let builder = null;
37
37
  function build(deps) {
38
38
  import_utils.logger.info("[MFSU][eager] build worker start to build");
@@ -92,7 +92,7 @@ async function start() {
92
92
  tmpBase,
93
93
  mfName: ((_f = opts.config.mfsu) == null ? void 0 : _f.mfName) || import_mfsu.DEFAULT_MF_NAME,
94
94
  shared: ((_g = opts.config.mfsu) == null ? void 0 : _g.shared) || {},
95
- buildDepWithESBuild: false,
95
+ buildDepWithESBuild: !!((_h = opts.config.mfsu) == null ? void 0 : _h.esbuild),
96
96
  depEsBuildConfig,
97
97
  externals
98
98
  });
@@ -69,7 +69,10 @@ var DepBuilderInWorker = class {
69
69
  var _a;
70
70
  const alias = { ...(_a = this.opts.depConfig.resolve) == null ? void 0 : _a.alias };
71
71
  const externals = this.opts.depConfig.externals;
72
- const entryContent = (0, import_getESBuildEntry.getESBuildEntry)({ deps: opts.deps });
72
+ const entryContent = (0, import_getESBuildEntry.getESBuildEntry)({
73
+ mfName: this.opts.mfName,
74
+ deps: opts.deps
75
+ });
73
76
  const ENTRY_FILE = "esbuild-entry.js";
74
77
  const tmpDir = this.opts.tmpBase;
75
78
  const entryPath = (0, import_path.join)(tmpDir, ENTRY_FILE);
@@ -26,10 +26,6 @@ var UMI_ASSETS_REG = {
26
26
  js: /^umi(\..+)?\.js$/,
27
27
  css: /^umi(\..+)?\.css$/
28
28
  };
29
- var FRAMEWORK_ASSETS_REG = {
30
- js: /^framework(\..+)?\.js$/,
31
- css: /^framework(\..+)?\.css$/
32
- };
33
29
  var HOT_UPDATE = ".hot-update.";
34
30
  function getAssetsMap(opts) {
35
31
  const { stats, publicPath } = opts;
@@ -42,16 +38,10 @@ function getAssetsMap(opts) {
42
38
  if (UMI_ASSETS_REG.js.test(asset)) {
43
39
  ret["umi.js"] = [`${displayPublicPath}${asset}`];
44
40
  }
45
- if (FRAMEWORK_ASSETS_REG.js.test(asset)) {
46
- ret["framework.js"] = [`${displayPublicPath}${asset}`];
47
- }
48
41
  }
49
42
  if (UMI_ASSETS_REG.css.test(asset)) {
50
43
  ret["umi.css"] = [`${displayPublicPath}${asset}`];
51
44
  }
52
- if (FRAMEWORK_ASSETS_REG.css.test(asset)) {
53
- ret["framework.css"] = [`${displayPublicPath}${asset}`];
54
- }
55
45
  }
56
46
  return ret;
57
47
  }
@@ -26,6 +26,7 @@ __export(check_exports, {
26
26
  });
27
27
  module.exports = __toCommonJS(check_exports);
28
28
  var import_assert = __toESM(require("assert"));
29
+ var import_utils = require("@umijs/utils");
29
30
  var check_default = (api) => {
30
31
  api.onCheck(async () => {
31
32
  (0, import_assert.default)(api.appData.routes, `routes not found, you may be run umi on the wrong directory.`);
@@ -58,6 +59,11 @@ var check_default = (api) => {
58
59
  });
59
60
  api.onCheckConfig(({ config }) => {
60
61
  if (config.publicPath.startsWith("./") && api.env === "development") {
62
+ console.log(`
63
+ ${import_utils.chalk.red(`\`publicPath\` does not support start with ${import_utils.chalk.bold.blue("./")} in development environment.`)}
64
+ You should use :
65
+ ${import_utils.chalk.green(`publicPath: process.env.NODE_ENV === 'production' ? './' : '/'`)}
66
+ `);
61
67
  throw new Error(`publicPath can not start with './' in development environment.`);
62
68
  }
63
69
  });
@@ -123,10 +123,10 @@ var codeSplitting_default = (api) => {
123
123
  }, "")).digest("base64").replace(/\//g, "").replace(/\+/g, "-").replace(/=/g, "_");
124
124
  return `shared-${cryptoName}`;
125
125
  },
126
- chunks: "async",
127
126
  priority: 10,
128
127
  minChunks: 2,
129
- reuseExistingChunk: true
128
+ reuseExistingChunk: true,
129
+ chunks: "async"
130
130
  }
131
131
  }
132
132
  });
@@ -92,6 +92,9 @@ var configPlugins_default = (api) => {
92
92
  if (key in configDefaults) {
93
93
  config.default = configDefaults[key];
94
94
  }
95
+ if (["routes"].includes(key)) {
96
+ config.onChange = api.ConfigChangeType.regenerateTmpFiles;
97
+ }
95
98
  api.registerPlugins([
96
99
  {
97
100
  id: `virtual: config-${key}`,
@@ -25,6 +25,7 @@ module.exports = __toCommonJS(schema_exports);
25
25
  var import_utils = require("@umijs/utils");
26
26
  function getSchemas() {
27
27
  return {
28
+ analyze: (Joi) => Joi.object(),
28
29
  base: (Joi) => Joi.string(),
29
30
  conventionRoutes: (Joi) => Joi.object({
30
31
  base: Joi.string(),
@@ -453,7 +453,7 @@ export default function EmptyRoute() {
453
453
  path: "@@/core/terminal.ts"
454
454
  });
455
455
  }
456
- if (api.appData.framework === "react") {
456
+ if (api.config.test !== false && api.appData.framework === "react") {
457
457
  if (process.env.NODE_ENV === "test" || process.env.NODE_ENV === "development") {
458
458
  exports.push(`export { TestBrowser } from './testBrowser';`);
459
459
  }
@@ -0,0 +1,3 @@
1
+ import { IApi } from '../../types';
2
+ declare const _default: (api: IApi) => void;
3
+ export default _default;
@@ -0,0 +1,86 @@
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/features/webpack/webpack.ts
20
+ var webpack_exports = {};
21
+ __export(webpack_exports, {
22
+ default: () => webpack_default
23
+ });
24
+ module.exports = __toCommonJS(webpack_exports);
25
+ var webpack_default = (api) => {
26
+ api.describe({
27
+ key: "preset-umi:webpack",
28
+ enableBy: () => api.env === "production"
29
+ });
30
+ const assets = {
31
+ js: [],
32
+ css: []
33
+ };
34
+ class HtmlWebpackPlugin {
35
+ apply(compiler) {
36
+ compiler.hooks.emit.tapPromise("UmiHtmlGeneration", async (compilation) => {
37
+ const entryPointFiles = compilation.entrypoints.get("umi").getFiles();
38
+ const entryPointPublicPathMap = {};
39
+ const extensionRegexp = /\.(css|js|mjs)(\?|$)/;
40
+ const UMI_ASSETS_REG = {
41
+ js: /^umi(\..+)?\.js$/,
42
+ css: /^umi(\..+)?\.css$/
43
+ };
44
+ entryPointFiles.forEach((entryPointPublicPath) => {
45
+ const extMatch = extensionRegexp.exec(entryPointPublicPath);
46
+ if (!extMatch) {
47
+ return;
48
+ }
49
+ if (entryPointPublicPath.includes(".hot-update")) {
50
+ return;
51
+ }
52
+ if (entryPointPublicPathMap[entryPointPublicPath]) {
53
+ return;
54
+ }
55
+ if (UMI_ASSETS_REG.js.test(entryPointPublicPath) || UMI_ASSETS_REG.css.test(entryPointPublicPath)) {
56
+ return;
57
+ }
58
+ entryPointPublicPathMap[entryPointPublicPath] = true;
59
+ const ext = extMatch[1] === "mjs" ? "js" : extMatch[1];
60
+ assets[ext].push(entryPointPublicPath);
61
+ });
62
+ });
63
+ }
64
+ }
65
+ api.modifyWebpackConfig((config) => {
66
+ var _a;
67
+ (_a = config.plugins) == null ? void 0 : _a.push(new HtmlWebpackPlugin());
68
+ return config;
69
+ });
70
+ api.addHTMLStyles(() => {
71
+ const { publicPath } = api.config;
72
+ const displayPublicPath = publicPath === "auto" ? "/" : publicPath;
73
+ return assets.css.map((css) => {
74
+ return `${displayPublicPath}${css}`;
75
+ });
76
+ });
77
+ api.addHTMLHeadScripts(() => {
78
+ const { publicPath } = api.config;
79
+ const displayPublicPath = publicPath === "auto" ? "/" : publicPath;
80
+ return assets.js.map((js) => {
81
+ return `${displayPublicPath}${js}`;
82
+ });
83
+ });
84
+ };
85
+ // Annotate the CommonJS export names for ESM import in node:
86
+ 0 && (module.exports = {});
package/dist/index.js CHANGED
@@ -62,6 +62,7 @@ var src_default = () => {
62
62
  require.resolve("./features/clickToComponent/clickToComponent"),
63
63
  require.resolve("./features/legacy/legacy"),
64
64
  require.resolve("./features/classPropertiesLoose/classPropertiesLoose"),
65
+ require.resolve("./features/webpack/webpack"),
65
66
  require.resolve("./commands/build"),
66
67
  require.resolve("./commands/config/config"),
67
68
  require.resolve("./commands/dev/dev"),
package/dist/types.d.ts CHANGED
@@ -55,6 +55,10 @@ export declare type IEntryImport = {
55
55
  specifier?: string;
56
56
  };
57
57
  export declare type IRoute = ICoreRoute;
58
+ export declare type IFileInfo = Array<{
59
+ event: string;
60
+ path: string;
61
+ }>;
58
62
  export declare type IApi = PluginAPI & IServicePluginAPI & {
59
63
  addApiMiddlewares: IAdd<null, IApiMiddleware>;
60
64
  addBeforeBabelPlugins: IAdd<null, any>;
@@ -161,10 +165,7 @@ export declare type IApi = PluginAPI & IServicePluginAPI & {
161
165
  time: number;
162
166
  }>;
163
167
  onGenerateFiles: IEvent<{
164
- files?: {
165
- event: string;
166
- path: string;
167
- } | null;
168
+ files?: IFileInfo | null;
168
169
  isFirstTime?: boolean;
169
170
  }>;
170
171
  onPatchRoute: IEvent<{
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@umijs/preset-umi",
3
- "version": "4.0.34",
3
+ "version": "4.0.35",
4
4
  "description": "@umijs/preset-umi",
5
5
  "homepage": "https://github.com/umijs/umi/tree/master/packages/preset-umi#readme",
6
6
  "bugs": "https://github.com/umijs/umi/issues",
@@ -25,19 +25,19 @@
25
25
  "test": "umi-scripts jest-turbo"
26
26
  },
27
27
  "dependencies": {
28
- "@umijs/ast": "4.0.34",
29
- "@umijs/babel-preset-umi": "4.0.34",
30
- "@umijs/bundler-utils": "4.0.34",
31
- "@umijs/bundler-vite": "4.0.34",
32
- "@umijs/bundler-webpack": "4.0.34",
33
- "@umijs/core": "4.0.34",
28
+ "@umijs/ast": "4.0.35",
29
+ "@umijs/babel-preset-umi": "4.0.35",
30
+ "@umijs/bundler-utils": "4.0.35",
31
+ "@umijs/bundler-vite": "4.0.35",
32
+ "@umijs/bundler-webpack": "4.0.35",
33
+ "@umijs/core": "4.0.35",
34
34
  "@umijs/did-you-know": "^1.0.0",
35
35
  "@umijs/history": "5.3.1",
36
- "@umijs/mfsu": "4.0.34",
37
- "@umijs/plugin-run": "4.0.34",
38
- "@umijs/renderer-react": "4.0.34",
39
- "@umijs/server": "4.0.34",
40
- "@umijs/utils": "4.0.34",
36
+ "@umijs/mfsu": "4.0.35",
37
+ "@umijs/plugin-run": "4.0.35",
38
+ "@umijs/renderer-react": "4.0.35",
39
+ "@umijs/server": "4.0.35",
40
+ "@umijs/utils": "4.0.35",
41
41
  "babel-plugin-dynamic-import-node": "2.3.3",
42
42
  "click-to-react-component": "^1.0.8",
43
43
  "core-js": "3.22.4",
package/templates/umi.tpl CHANGED
@@ -27,16 +27,24 @@ async function render() {
27
27
  },
28
28
  });
29
29
 
30
+ const contextOpts = pluginManager.applyPlugins({
31
+ key: 'modifyContextOpts',
32
+ type: ApplyPluginsType.modify,
33
+ initialValue: {},
34
+ });
35
+
36
+ const basename = contextOpts.basename || '{{{ basename }}}';
37
+
38
+ const history = createHistory({
39
+ type: contextOpts.historyType || '{{{ historyType }}}',
40
+ basename,
41
+ ...contextOpts.historyOpts,
42
+ });
43
+
30
44
  return (pluginManager.applyPlugins({
31
45
  key: 'render',
32
46
  type: ApplyPluginsType.compose,
33
47
  initialValue() {
34
- const contextOpts = pluginManager.applyPlugins({
35
- key: 'modifyContextOpts',
36
- type: ApplyPluginsType.modify,
37
- initialValue: {},
38
- });
39
- const basename = contextOpts.basename || '{{{ basename }}}';
40
48
  const context = {
41
49
  {{#hydrate}}
42
50
  hydrate: true,
@@ -53,11 +61,7 @@ async function render() {
53
61
  {{/loadingComponent}}
54
62
  publicPath,
55
63
  runtimePublicPath,
56
- history: createHistory({
57
- type: contextOpts.historyType || '{{{ historyType }}}',
58
- basename,
59
- ...contextOpts.historyOpts,
60
- }),
64
+ history,
61
65
  basename,
62
66
  callback: contextOpts.callback,
63
67
  };