diff --git a/docs/guide/mock.md b/docs/guide/mock.md index 789e3d33..eba27049 100644 --- a/docs/guide/mock.md +++ b/docs/guide/mock.md @@ -19,7 +19,7 @@ Fes.js 约定 `src/mock.js` 为 mock 文件。 可以参考如下 🌰: ``` js -module.exports = function ({ cgiMock, mockjs, utils }) { +export default function ({ cgiMock, mockjs, utils }) { const { Random } = mockjs; // 测试 proxy 与 mock 用例集合 @@ -160,7 +160,7 @@ module.exports = function ({ cgiMock, mockjs, utils }) { 比如: ```js -module.exports = function ({ cgiMock, mockjs, utils }) { +export default function ({ cgiMock, mockjs, utils }) { cgiMock('/random', mockjs.mock({ 'string|1-10': '★' })); diff --git a/docs/reference/plugin/plugins/layout.md b/docs/reference/plugin/plugins/layout.md index e0511b54..85bd8885 100644 --- a/docs/reference/plugin/plugins/layout.md +++ b/docs/reference/plugin/plugins/layout.md @@ -9,6 +9,8 @@ - 搭配 [@fesjs/plugin-access](./access.html) 插件使用,可以完成对路由的权限控制。 - 搭配 [@fesjs/plugin-locale](./locale.html) 插件使用,提供切换语言的能力。 - 支持自定义头部区域。 +- 菜单支持配置icon +- 菜单标题支持国际化 - 可配置页面是否需要 layout。 @@ -156,9 +158,21 @@ export default { - **path**:菜单的路径,可配置第三方地址。 - - **title**:菜单的标题。 + - **title**:菜单的标题,如果同时使用[国际化插件](./locale.md),而且在 `locales` 中配置了 `title` ,则菜单的名称会根据语言自动切换。 - - **icon**: 菜单的图标,只有一级标题展示图标,图标使用[antv icon](https://www.antdv.com/components/icon-cn/),在这里使用组件type。 + - **icon**: 菜单的图标,只有一级标题展示图标。 + - 图标使用[antv icon](https://www.antdv.com/components/icon-cn/),在这里使用组件type。 +```js +{ + name: "user" +} +``` + - 图表使用本地或者远程svg图片。 +```js +{ + name: "/wine-outline.svg" +} +``` - **children**:子菜单配置。 diff --git a/docs/zh/guide/mock.md b/docs/zh/guide/mock.md index 789e3d33..eba27049 100644 --- a/docs/zh/guide/mock.md +++ b/docs/zh/guide/mock.md @@ -19,7 +19,7 @@ Fes.js 约定 `src/mock.js` 为 mock 文件。 可以参考如下 🌰: ``` js -module.exports = function ({ cgiMock, mockjs, utils }) { +export default function ({ cgiMock, mockjs, utils }) { const { Random } = mockjs; // 测试 proxy 与 mock 用例集合 @@ -160,7 +160,7 @@ module.exports = function ({ cgiMock, mockjs, utils }) { 比如: ```js -module.exports = function ({ cgiMock, mockjs, utils }) { +export default function ({ cgiMock, mockjs, utils }) { cgiMock('/random', mockjs.mock({ 'string|1-10': '★' })); diff --git a/packages/fes-preset-built-in/src/plugins/features/mock.js b/packages/fes-preset-built-in/src/plugins/features/mock.js index 77956ebb..ae787683 100644 --- a/packages/fes-preset-built-in/src/plugins/features/mock.js +++ b/packages/fes-preset-built-in/src/plugins/features/mock.js @@ -1,6 +1,6 @@ import { existsSync, readFileSync } from 'fs'; import { resolve } from 'path'; -import { chokidar, lodash } from '@umijs/utils'; +import { chokidar, lodash, parseRequireDeps } from '@umijs/utils'; import bodyParser from 'body-parser'; import cookieParser from 'cookie-parser'; import mockjs from 'mockjs'; @@ -11,6 +11,24 @@ export default (api) => { let mockFile = ''; // mock 文件 let loadMock = ''; // mock 对象 + const registerBabel = (paths) => { + // support + // clear require cache and set babel register + const requireDeps = paths.reduce((memo, file) => { + memo = memo.concat(parseRequireDeps(file)); + return memo; + }, []); + requireDeps.forEach((f) => { + if (require.cache[f]) { + delete require.cache[f]; + } + }); + api.babelRegister.setOnlyMap({ + key: 'mock', + value: [...paths, ...requireDeps] + }); + }; + api.describe({ key: 'mock', config: { @@ -96,11 +114,14 @@ export default (api) => { } // require最新的 mock.js 文件 try { - const projectMock = require(mockFile); - if (!lodash.isFunction(projectMock)) { + // register babel + registerBabel([mockFile]); + const _initFunction = require(mockFile); + const initFunction = _initFunction.default || _initFunction; + if (!lodash.isFunction(initFunction)) { api.logger.info('mock.js should export Function'); return; } - projectMock({ cgiMock, mockjs, utils }); + initFunction({ cgiMock, mockjs, utils }); } catch (err) { api.logger.error('mock.js run fail!'); } diff --git a/packages/fes-template/mock.js b/packages/fes-template/mock.js index b7bf8500..df5a9d88 100644 --- a/packages/fes-template/mock.js +++ b/packages/fes-template/mock.js @@ -1,4 +1,4 @@ -module.exports = function ({ cgiMock, mockjs, utils }) { +export default function ({ cgiMock, mockjs, utils }) { const { Random } = mockjs; // 测试 proxy 与 mock 用例集合 @@ -127,4 +127,4 @@ module.exports = function ({ cgiMock, mockjs, utils }) { msg: '文件上传成功' }); }); -}; +}