Skip to content

Commit

Permalink
Merge branch 'master' into feature/docs-to-dumi
Browse files Browse the repository at this point in the history
  • Loading branch information
hualigushi committed Aug 13, 2023
2 parents 19871f9 + 31be984 commit 06d1d8a
Show file tree
Hide file tree
Showing 34 changed files with 100 additions and 35 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/pr-checker.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: PullRequest Checker

on:
pull_request_target:
pull_request:
types:
- closed
paths-ignore:
Expand Down
15 changes: 15 additions & 0 deletions docs/docs/docs/api/config.md
Original file line number Diff line number Diff line change
Expand Up @@ -1249,6 +1249,21 @@ proxy: {

配置路由。更多信息,请查看 [配置路由](../guides/routes#配置路由)

## routeLoader

- 类型:`{ moduleType: 'esm' | 'cjs' }`
- 默认值:`{ moduleType: 'esm' }`

配置路由加载方式。moduleType 配置为 'cjs' 会用 `require` 的方式加载路由组件。

```ts
// moduleType: esm
'index': React.lazy(() => import(/* webpackChunkName: "p__index" */'../../pages/index.tsx')),

// moduleType: cjs
'index': React.lazy(() => Promise.resolve(require('../../pages/index.tsx'))),
```

## run

- 类型:`{ globals: string[] }`
Expand Down
24 changes: 20 additions & 4 deletions docs/docs/docs/max/micro-frontend.md
Original file line number Diff line number Diff line change
Expand Up @@ -516,13 +516,13 @@ export default function Page() {

如果您没有使用 antd 作为项目组件库,或希望覆盖默认的加载动画样式时,可以设置一个自定义的加载组件 `loader` 作为子应用的加载动画。

如果通过路由的模式引入子应用,可以配置如下
通过路由的模式引入的子应用,目前只支持在运行时配置,代码如下

```tsx
// .umirc.ts
// .app.tsx
import CustomLoader from 'src/components/CustomLoader';

export default {
export const qiankun = () => ({
routes: [
{
path: '/app1',
Expand All @@ -532,7 +532,7 @@ export default {
},
},
],
};
});
```

如果通过组件的模式引入子应用,直接将 `loader` 作为参数传入即可:
Expand All @@ -553,6 +553,21 @@ export default function Page() {

其中,`loading``boolean` 类型参数,为 `true` 时表示仍在加载状态,为 `false` 时表示加载状态已结束。

如果多个子应用同时存在自定义 loading 的诉求,每个都配置一遍是比较繁琐的,此时可以通过定义主应用的配置来解决,比如说:
```ts
// .umirc.ts
qiankun: {
master: {
loader: '@/CustomLoader',
},
},
```
其中,`loader` 为文件路径,统一约定放在 [src 目录](../guides/directory-structure.md#src-目录) 下,在 umi 中 `@` 即代表 `src` 目录。

`CustomLoader` 跟上述实现一致,接收一个 `loading``boolean` 类型的参数。

注意:`master.loader` 不默认开启加载动画,开启动画需要将 `autoSetLoading` 设置为 `true`

### 子应用错误捕获

启用此能力后,当子应用加载出现异常时,会自动显示错误信息。
Expand Down Expand Up @@ -668,6 +683,7 @@ export default {
| 属性 | 必填 | 说明 | 类型 | 默认值 |
| --- | --- | --- | --- | --- |
| `enable` || 启用 Qiankun 微应用插件,设置为 `false` 时为不启用 | `boolean` | `undefined` |
| `loader` || 统一配置微应用加载动画的文件,设置文件路径即可 | `string` | - |
| `apps` || 微应用配置 | [`App[]`](#app) | `undefined` |
| `routes` || 微应用运行时的路由 | [`Route[]`](#route) | `undefined` |
| `sandbox` || 是否开启沙箱模式 | `boolean \| { strictStyleIsolation: boolean, experimentalStyleIsolation: boolean }` | `true` |
Expand Down
7 changes: 7 additions & 0 deletions examples/boilerplate/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,11 @@ export default (api: IApi) => {
args;
// console.log('> onCheckCode', args);
});

api.addHTMLScripts({
async fn() {
return [`console.log('async scripts hello world')`];
},
stage: 100,
});
};
2 changes: 1 addition & 1 deletion lerna.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"version": "4.0.74",
"version": "4.0.0-canary.20230811.1",
"workspaces": ["packages/*"]
}
2 changes: 1 addition & 1 deletion packages/ast/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@umijs/ast",
"version": "4.0.74",
"version": "4.0.0-canary.20230811.1",
"description": "@umijs/ast",
"homepage": "https://github.com/umijs/umi/tree/master/packages/ast#readme",
"bugs": "https://github.com/umijs/umi/issues",
Expand Down
2 changes: 1 addition & 1 deletion packages/babel-preset-umi/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@umijs/babel-preset-umi",
"version": "4.0.74",
"version": "4.0.0-canary.20230811.1",
"description": "Official babel preset for umi.",
"homepage": "https://github.com/umijs/umi/tree/master/packages/babel-preset-umi#readme",
"bugs": "https://github.com/umijs/umi/issues",
Expand Down
2 changes: 1 addition & 1 deletion packages/bundler-esbuild/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@umijs/bundler-esbuild",
"version": "4.0.74",
"version": "4.0.0-canary.20230811.1",
"description": "@umijs/bundler-esbuild",
"homepage": "https://github.com/umijs/umi/tree/master/packages/bundler-esbuild#readme",
"bugs": "https://github.com/umijs/umi/issues",
Expand Down
2 changes: 1 addition & 1 deletion packages/bundler-utils/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@umijs/bundler-utils",
"version": "4.0.74",
"version": "4.0.0-canary.20230811.1",
"homepage": "https://github.com/umijs/umi/tree/master/packages/bundler-utils#readme",
"bugs": "https://github.com/umijs/umi/issues",
"repository": {
Expand Down
2 changes: 1 addition & 1 deletion packages/bundler-vite/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@umijs/bundler-vite",
"version": "4.0.74",
"version": "4.0.0-canary.20230811.1",
"description": "@umijs/bundler-vite",
"homepage": "https://github.com/umijs/umi/tree/master/packages/bundler-vite#readme",
"bugs": "https://github.com/umijs/umi/issues",
Expand Down
2 changes: 1 addition & 1 deletion packages/bundler-webpack/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@umijs/bundler-webpack",
"version": "4.0.74",
"version": "4.0.0-canary.20230811.1",
"description": "@umijs/bundler-webpack",
"homepage": "https://github.com/umijs/umi/tree/master/packages/bundler-webpack#readme",
"bugs": "https://github.com/umijs/umi/issues",
Expand Down
2 changes: 1 addition & 1 deletion packages/core/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@umijs/core",
"version": "4.0.74",
"version": "4.0.0-canary.20230811.1",
"homepage": "https://github.com/umijs/umi/tree/master/packages/core#readme",
"bugs": "https://github.com/umijs/umi/issues",
"repository": {
Expand Down
6 changes: 3 additions & 3 deletions packages/core/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -99,10 +99,10 @@ export interface IAdd<T, U> {
(args: {
fn: {
(args: T): Promise<U | U[]>;
name?: string;
before?: string | string[];
stage?: number;
};
name?: string;
before?: string | string[];
stage?: number;
}): void;
}

Expand Down
2 changes: 1 addition & 1 deletion packages/create-umi/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "create-umi",
"version": "4.0.74",
"version": "4.0.0-canary.20230811.1",
"description": "create-umi",
"homepage": "https://github.com/umijs/umi/tree/master/packages/create-umi#readme",
"bugs": "https://github.com/umijs/umi/issues",
Expand Down
2 changes: 1 addition & 1 deletion packages/lint/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@umijs/lint",
"version": "4.0.74",
"version": "4.0.0-canary.20230811.1",
"description": "@umijs/lint",
"homepage": "https://github.com/umijs/umi/tree/master/packages/lint#readme",
"bugs": "https://github.com/umijs/umi/issues",
Expand Down
2 changes: 1 addition & 1 deletion packages/max/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@umijs/max",
"version": "4.0.74",
"version": "4.0.0-canary.20230811.1",
"description": "@umijs/max",
"homepage": "https://github.com/umijs/umi/tree/master/packages/max#readme",
"bugs": "https://github.com/umijs/umi/issues",
Expand Down
2 changes: 1 addition & 1 deletion packages/mfsu/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@umijs/mfsu",
"version": "4.0.74",
"version": "4.0.0-canary.20230811.1",
"description": "@umijs/mfsu",
"homepage": "https://github.com/umijs/umi/tree/master/packages/mfsu#readme",
"bugs": "https://github.com/umijs/umi/issues",
Expand Down
2 changes: 1 addition & 1 deletion packages/plugin-docs/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@umijs/plugin-docs",
"version": "4.0.74",
"version": "4.0.0-canary.20230811.1",
"description": "@umijs/plugin-docs",
"homepage": "https://github.com/umijs/umi/tree/master/packages/plugin-docs#readme",
"bugs": "https://github.com/umijs/umi/issues",
Expand Down
2 changes: 1 addition & 1 deletion packages/plugin-run/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@umijs/plugin-run",
"version": "4.0.74",
"version": "4.0.0-canary.20230811.1",
"description": "@umijs/plugin-run",
"homepage": "https://github.com/umijs/umi/tree/master/packages/plugin-run#readme",
"bugs": "https://github.com/umijs/umi/issues",
Expand Down
1 change: 1 addition & 0 deletions packages/plugins/libs/qiankun/master/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ export type MicroAppRoute = {

export type MasterOptions = {
enable?: boolean;
loader?: string;
apps?: App[];
routes?: MicroAppRoute[];
lifeCycles?: FrameworkLifeCycles<object>;
Expand Down
2 changes: 1 addition & 1 deletion packages/plugins/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@umijs/plugins",
"version": "4.0.74",
"version": "4.0.0-canary.20230811.1",
"description": "@umijs/plugins",
"homepage": "https://github.com/umijs/umi/tree/master/packages/plugins#readme",
"bugs": "https://github.com/umijs/umi/issues",
Expand Down
19 changes: 16 additions & 3 deletions packages/plugins/src/qiankun/master.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import assert from 'assert';
import { readFileSync } from 'fs';
import { dirname, join } from 'path';
import { IApi, RUNTIME_TYPE_FILE_NAME } from 'umi';
Expand All @@ -18,6 +19,15 @@ export function isMasterEnable(opts: { userConfig: any }) {
return !!process.env.INITIAL_QIANKUN_MASTER_OPTIONS;
}

function getCustomLoader(api: IApi) {
const loader = api.config.qiankun?.master?.loader;
assert(
!loader || loader.startsWith?.('@/'),
'[@umijs/plugin-qiankun]: loader only support root path, eg: @/loading',
);
return loader;
}

export default (api: IApi) => {
api.describe({
key: 'qiankun-master',
Expand Down Expand Up @@ -113,10 +123,13 @@ export const setMasterOptions = (newOpts) => options = ({ ...options, ...newOpts

api.writeTmpFile({
path: 'MicroAppLoader.tsx',
// 开启了 antd 插件的时候,使用 antd 的 loader 组件,否则提示用户必须设置一个自定义的 loader 组件
content: api.isPluginEnable('antd')
content: getCustomLoader(api)
? // 用户自定义的 loading 优先级最高
`export { default } from '${getCustomLoader(api)}';`
: api.isPluginEnable('antd')
? getFileContent('AntdLoader.tsx')
: `export default function Loader() { console.warn(\`[plugins/qiankun]: Seems like you'r not using @umijs/plugin-antd, you need to provide a custom loader or set autoSetLoading false to shut down this warning!\`); return null; }`,
: // 开启了 antd 插件的时候,使用 antd 的 loader 组件,否则提示用户必须设置一个自定义的 loader 组件
`export default function Loader() { console.warn(\`[plugins/qiankun]: Seems like you'r not using @umijs/plugin-antd, you need to provide a custom loader or set autoSetLoading false to shut down this warning!\`); return null; }`,
});

[
Expand Down
2 changes: 1 addition & 1 deletion packages/preset-umi/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@umijs/preset-umi",
"version": "4.0.74",
"version": "4.0.0-canary.20230811.1",
"description": "@umijs/preset-umi",
"homepage": "https://github.com/umijs/umi/tree/master/packages/preset-umi#readme",
"bugs": "https://github.com/umijs/umi/issues",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ export default (api: IApi) => {
svgr: {},
ignoreMomentLocale: true,
mfsu: { strategy: 'eager' },
routeLoader: { moduleType: 'esm' },
};

const bundleSchemas = api.config.vite
Expand Down
4 changes: 4 additions & 0 deletions packages/preset-umi/src/features/configPlugins/schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,10 @@ export function getSchemas(): Record<string, ({}: { zod: typeof z }) => any> {
message: 'publicPath must be "auto" or end with /',
}),
reactRouter5Compat: ({ zod }) => zod.union([zod.boolean(), zod.object({})]),
routeLoader: ({ zod }) =>
zod.object({
moduleType: zod.enum(['esm', 'cjs']),
}),
routes: ({ zod }) => {
const routeSchema: any = zod.union([
zod
Expand Down
8 changes: 8 additions & 0 deletions packages/preset-umi/src/features/tmpFiles/routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -240,6 +240,14 @@ export async function getRouteComponents(opts: {
return `'${key}': require('${winPath(path)}').default,`;
}

// ref: https://github.com/umijs/umi/issues/11466
if (opts.api.config.routeLoader?.moduleType === 'cjs') {
return useSuspense
? `'${key}': React.lazy(() => Promise.resolve(require('${winPath(
path,
)}'))),`
: `'${key}': () => Promise.resolve(require('${winPath(path)}')),`;
}
return useSuspense
? `'${key}': React.lazy(() => import(/* webpackChunkName: "${webpackChunkName}" */'${winPath(
path,
Expand Down
2 changes: 1 addition & 1 deletion packages/preset-vue/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@umijs/preset-vue",
"version": "4.0.74",
"version": "4.0.0-canary.20230811.1",
"description": "@umijs/preset-vue",
"homepage": "https://github.com/umijs/umi/tree/master/packages/preset-vue#readme",
"bugs": "https://github.com/umijs/umi/issues",
Expand Down
2 changes: 1 addition & 1 deletion packages/renderer-react/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@umijs/renderer-react",
"version": "4.0.74",
"version": "4.0.0-canary.20230811.1",
"description": "@umijs/renderer-react",
"homepage": "https://github.com/umijs/umi/tree/master/packages/renderer-react#readme",
"bugs": "https://github.com/umijs/umi/issues",
Expand Down
2 changes: 1 addition & 1 deletion packages/renderer-vue/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@umijs/renderer-vue",
"version": "4.0.74",
"version": "4.0.0-canary.20230811.1",
"description": "@umijs/renderer-vue",
"homepage": "https://github.com/umijs/umi/tree/master/packages/renderer-vue#readme",
"bugs": "https://github.com/umijs/umi/issues",
Expand Down
2 changes: 1 addition & 1 deletion packages/server/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@umijs/server",
"version": "4.0.74",
"version": "4.0.0-canary.20230811.1",
"description": "@umijs/server",
"homepage": "https://github.com/umijs/umi/tree/master/packages/server#readme",
"bugs": "https://github.com/umijs/umi/issues",
Expand Down
2 changes: 1 addition & 1 deletion packages/testing/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@umijs/test",
"version": "4.0.74",
"version": "4.0.0-canary.20230811.1",
"description": "@umijs/test",
"homepage": "https://github.com/umijs/umi/tree/master/packages/testing#readme",
"bugs": "https://github.com/umijs/umi/issues",
Expand Down
2 changes: 1 addition & 1 deletion packages/umi/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "umi",
"version": "4.0.74",
"version": "4.0.0-canary.20230811.1",
"description": "umi",
"homepage": "https://github.com/umijs/umi/tree/master/packages/umi#readme",
"bugs": "https://github.com/umijs/umi/issues",
Expand Down
2 changes: 1 addition & 1 deletion packages/utils/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@umijs/utils",
"version": "4.0.74",
"version": "4.0.0-canary.20230811.1",
"homepage": "https://github.com/umijs/umi/tree/master/packages/utils#readme",
"bugs": "https://github.com/umijs/umi/issues",
"repository": {
Expand Down
2 changes: 1 addition & 1 deletion packages/zod2ts/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@umijs/zod2ts",
"version": "4.0.74",
"version": "4.0.0-canary.20230811.1",
"description": "@umijs/zod2ts",
"homepage": "https://github.com/umijs/umi/tree/master/packages/zod2ts#readme",
"bugs": "https://github.com/umijs/umi/issues",
Expand Down

0 comments on commit 06d1d8a

Please sign in to comment.