diff --git a/packages/fes-plugin-built-in/src/index.js b/packages/fes-plugin-built-in/src/index.js
index a50331b1..f6c2c8da 100644
--- a/packages/fes-plugin-built-in/src/index.js
+++ b/packages/fes-plugin-built-in/src/index.js
@@ -5,12 +5,12 @@ export default [
     require.resolve('./plugins/registerMethods'),
 
     // misc
-    require.resolve('./plugins/routes'),
+    require.resolve('./plugins/mics/routes'),
 
     // generate files
     require.resolve('./plugins/generateFiles/core/plugin'),
     require.resolve('./plugins/generateFiles/core/routes'),
-    require.resolve('./plugins/generateFiles/core/fesExports'),
+    require.resolve('./plugins/generateFiles/core/exports'),
     require.resolve('./plugins/generateFiles/fes'),
 
     // bundle configs
@@ -48,6 +48,6 @@ export default [
     require.resolve('./plugins/features/vueLoader'),
 
     // commands
-    require.resolve('./plugins/commands/build/build'),
-    require.resolve('./plugins/commands/dev/dev')
+    require.resolve('./plugins/commands/build'),
+    require.resolve('./plugins/commands/dev')
 ];
diff --git a/packages/fes-plugin-built-in/src/plugins/commands/build/build.js b/packages/fes-plugin-built-in/src/plugins/commands/build/index.js
similarity index 95%
rename from packages/fes-plugin-built-in/src/plugins/commands/build/build.js
rename to packages/fes-plugin-built-in/src/plugins/commands/build/index.js
index a2ad9656..b613ec16 100644
--- a/packages/fes-plugin-built-in/src/plugins/commands/build/build.js
+++ b/packages/fes-plugin-built-in/src/plugins/commands/build/index.js
@@ -5,8 +5,8 @@ import {
     cleanTmpPathExceptCache,
     getBundleAndConfigs,
     printFileSizes
-} from '../buildDevUtils';
-import generateFiles from '../generateFiles';
+} from '../../../utils/buildDevUtils';
+import generateFiles from '../../../utils/generateFiles';
 
 const logger = new Logger('fes:plugin-built-in');
 
diff --git a/packages/fes-plugin-built-in/src/plugins/commands/dev/dev.js b/packages/fes-plugin-built-in/src/plugins/commands/dev/index.js
similarity index 83%
rename from packages/fes-plugin-built-in/src/plugins/commands/dev/dev.js
rename to packages/fes-plugin-built-in/src/plugins/commands/dev/index.js
index 13fc9548..3c03fbcf 100644
--- a/packages/fes-plugin-built-in/src/plugins/commands/dev/dev.js
+++ b/packages/fes-plugin-built-in/src/plugins/commands/dev/index.js
@@ -1,25 +1,18 @@
 import { Server } from '@umijs/server';
-import {
-    delay
-} from '@umijs/utils';
+import { delay } from '@umijs/utils';
 import assert from 'assert';
 import {
     cleanTmpPathExceptCache,
     getBundleAndConfigs
-} from '../buildDevUtils';
-import generateFiles from '../generateFiles';
-import {
-    watchPkg
-} from './watchPkg';
+} from '../../../utils/buildDevUtils';
+import generateFiles from '../../../utils/generateFiles';
+import { watchPkg } from './watchPkg';
 
 export default (api) => {
     const {
         env,
         paths,
-        utils: {
-            chalk,
-            portfinder
-        }
+        utils: { chalk, portfinder }
     } = api;
 
     const unwatchs = [];
@@ -80,16 +73,13 @@ export default (api) => {
                 // watch config change
                 const unwatchConfig = api.service.configInstance.watch({
                     userConfig: api.service.userConfig,
-                    onChange: async ({
-                        pluginChanged,
-                        valueChanged
-                    }) => {
+                    onChange: async ({ pluginChanged, valueChanged }) => {
                         if (pluginChanged.length) {
                             console.log();
                             api.logger.info(
                                 `Plugins of ${pluginChanged
                                     .map(p => p.key)
-                                    .join(', ')} changed.`,
+                                    .join(', ')} changed.`
                             );
                             api.restartServer();
                         }
@@ -98,17 +88,18 @@ export default (api) => {
                             let regenerateTmpFiles = false;
                             const fns = [];
                             const reloadConfigs = [];
-                            valueChanged.forEach(({
-                                key,
-                                pluginId
-                            }) => {
-                                const {
+                            valueChanged.forEach(({ key, pluginId }) => {
+                                const { onChange } = api.service.plugins[pluginId].config || {};
+                                if (
                                     onChange
-                                } = api.service.plugins[pluginId].config || {};
-                                if (onChange === api.ConfigChangeType.regenerateTmpFiles) {
+                                    === api.ConfigChangeType.regenerateTmpFiles
+                                ) {
                                     regenerateTmpFiles = true;
                                 }
-                                if (!onChange || onChange === api.ConfigChangeType.reload) {
+                                if (
+                                    !onChange
+                                    || onChange === api.ConfigChangeType.reload
+                                ) {
                                     reload = true;
                                     reloadConfigs.push(key);
                                 }
@@ -119,7 +110,11 @@ export default (api) => {
 
                             if (reload) {
                                 console.log();
-                                api.logger.info(`Config ${reloadConfigs.join(', ')} changed.`);
+                                api.logger.info(
+                                    `Config ${reloadConfigs.join(
+                                        ', '
+                                    )} changed.`
+                                );
                                 api.restartServer();
                             } else {
                                 api.service.userConfig = api.service.configInstance.getUserConfig();
@@ -181,9 +176,7 @@ export default (api) => {
                 },
                 proxy: api.config.proxy,
                 beforeMiddlewares,
-                afterMiddlewares: [
-                    ...middlewares
-                ],
+                afterMiddlewares: [...middlewares],
                 ...(api.config.devServer || {})
             });
             const listenRet = await server.listen({
@@ -202,7 +195,7 @@ export default (api) => {
         fn() {
             assert(
                 env === 'development',
-                'api.getPort() is only valid in development.',
+                'api.getPort() is only valid in development.'
             );
             return port;
         }
@@ -213,7 +206,7 @@ export default (api) => {
         fn() {
             assert(
                 env === 'development',
-                'api.getHostname() is only valid in development.',
+                'api.getHostname() is only valid in development.'
             );
             return hostname;
         }
@@ -224,7 +217,7 @@ export default (api) => {
         fn() {
             assert(
                 env === 'development',
-                'api.getServer() is only valid in development.',
+                'api.getServer() is only valid in development.'
             );
             return server;
         }
diff --git a/packages/fes-plugin-built-in/src/plugins/generateFiles/core/fesExports.js b/packages/fes-plugin-built-in/src/plugins/generateFiles/core/exports/index.js
similarity index 97%
rename from packages/fes-plugin-built-in/src/plugins/generateFiles/core/fesExports.js
rename to packages/fes-plugin-built-in/src/plugins/generateFiles/core/exports/index.js
index 56fccb13..644f51e8 100644
--- a/packages/fes-plugin-built-in/src/plugins/generateFiles/core/fesExports.js
+++ b/packages/fes-plugin-built-in/src/plugins/generateFiles/core/exports/index.js
@@ -63,14 +63,14 @@ export function generateExports({
 export default function (api) {
     api.onGenerateFiles(async () => {
         const fesExports = await api.applyPlugins({
-            key: 'addFesExports',
+            key: 'addExports',
             type: api.ApplyPluginsType.add,
             initialValue: []
         });
 
         const fesExportsHook = {}; // repeated definition
         api.writeTmpFile({
-            path: 'core/fesExports.js',
+            path: 'core/exports.js',
             content:
         `${fesExports
             .map(item => generateExports({
diff --git a/packages/fes-plugin-built-in/src/plugins/generateFiles/core/plugin.js b/packages/fes-plugin-built-in/src/plugins/generateFiles/core/plugin/index.js
similarity index 95%
rename from packages/fes-plugin-built-in/src/plugins/generateFiles/core/plugin.js
rename to packages/fes-plugin-built-in/src/plugins/generateFiles/core/plugin/index.js
index 05c5e6e1..a7b15de7 100644
--- a/packages/fes-plugin-built-in/src/plugins/generateFiles/core/plugin.js
+++ b/packages/fes-plugin-built-in/src/plugins/generateFiles/core/plugin/index.js
@@ -1,7 +1,7 @@
 import { readFileSync } from 'fs';
 import { join } from 'path';
 import { getFile, winPath } from '@umijs/utils';
-import { runtimePath } from '../constants';
+import { runtimePath } from '../../../../utils/constants';
 
 export default function (api) {
     const {
@@ -54,7 +54,7 @@ export default function (api) {
         });
     });
 
-    api.addFesExports(() => ({
+    api.addExports(() => ({
         specifiers: ['plugin'],
         source: './plugin'
     }));
diff --git a/packages/fes-plugin-built-in/src/plugins/generateFiles/core/plugin.tpl b/packages/fes-plugin-built-in/src/plugins/generateFiles/core/plugin/plugin.tpl
similarity index 100%
rename from packages/fes-plugin-built-in/src/plugins/generateFiles/core/plugin.tpl
rename to packages/fes-plugin-built-in/src/plugins/generateFiles/core/plugin/plugin.tpl
diff --git a/packages/fes-plugin-built-in/src/plugins/generateFiles/core/pluginRegister.tpl b/packages/fes-plugin-built-in/src/plugins/generateFiles/core/plugin/pluginRegister.tpl
similarity index 100%
rename from packages/fes-plugin-built-in/src/plugins/generateFiles/core/pluginRegister.tpl
rename to packages/fes-plugin-built-in/src/plugins/generateFiles/core/plugin/pluginRegister.tpl
diff --git a/packages/fes-plugin-built-in/src/plugins/generateFiles/core/routes.js b/packages/fes-plugin-built-in/src/plugins/generateFiles/core/routes/index.js
similarity index 89%
rename from packages/fes-plugin-built-in/src/plugins/generateFiles/core/routes.js
rename to packages/fes-plugin-built-in/src/plugins/generateFiles/core/routes/index.js
index 8227ec33..8794ac7e 100644
--- a/packages/fes-plugin-built-in/src/plugins/generateFiles/core/routes.js
+++ b/packages/fes-plugin-built-in/src/plugins/generateFiles/core/routes/index.js
@@ -4,7 +4,7 @@ import {
     join
 } from 'path';
 import { routesToJSON } from '@webank/fes-core';
-import { runtimePath } from '../constants';
+import { runtimePath } from '../../../../utils/constants';
 
 export default function (api) {
     const {
@@ -24,7 +24,7 @@ export default function (api) {
         });
     });
 
-    api.addFesExports(() => ({
+    api.addExports(() => ({
         specifiers: ['router'],
         source: './routes.js'
     }));
diff --git a/packages/fes-plugin-built-in/src/plugins/generateFiles/core/routes.tpl b/packages/fes-plugin-built-in/src/plugins/generateFiles/core/routes/routes.tpl
similarity index 100%
rename from packages/fes-plugin-built-in/src/plugins/generateFiles/core/routes.tpl
rename to packages/fes-plugin-built-in/src/plugins/generateFiles/core/routes/routes.tpl
diff --git a/packages/fes-plugin-built-in/src/plugins/generateFiles/fes.tpl b/packages/fes-plugin-built-in/src/plugins/generateFiles/fes/fes.tpl
similarity index 100%
rename from packages/fes-plugin-built-in/src/plugins/generateFiles/fes.tpl
rename to packages/fes-plugin-built-in/src/plugins/generateFiles/fes/fes.tpl
diff --git a/packages/fes-plugin-built-in/src/plugins/generateFiles/fes.js b/packages/fes-plugin-built-in/src/plugins/generateFiles/fes/index.js
similarity index 97%
rename from packages/fes-plugin-built-in/src/plugins/generateFiles/fes.js
rename to packages/fes-plugin-built-in/src/plugins/generateFiles/fes/index.js
index e8954059..d9c5fab7 100644
--- a/packages/fes-plugin-built-in/src/plugins/generateFiles/fes.js
+++ b/packages/fes-plugin-built-in/src/plugins/generateFiles/fes/index.js
@@ -1,7 +1,7 @@
 import { readFileSync } from 'fs';
 import { join } from 'path';
 import { winPath } from '@umijs/utils';
-import { runtimePath } from './constants';
+import { runtimePath } from '../../../utils/constants';
 
 export function importsToStr(
     imports,
diff --git a/packages/fes-plugin-built-in/src/plugins/routes.js b/packages/fes-plugin-built-in/src/plugins/misc/routes.js
similarity index 100%
rename from packages/fes-plugin-built-in/src/plugins/routes.js
rename to packages/fes-plugin-built-in/src/plugins/misc/routes.js
diff --git a/packages/fes-plugin-built-in/src/plugins/registerMethods.js b/packages/fes-plugin-built-in/src/plugins/registerMethods.js
index 9f769fd0..0aa0cb00 100644
--- a/packages/fes-plugin-built-in/src/plugins/registerMethods.js
+++ b/packages/fes-plugin-built-in/src/plugins/registerMethods.js
@@ -6,7 +6,7 @@ export default function (api) {
     [
         'onExit',
         'onGenerateFiles',
-        'addFesExports',
+        'addExports',
         'addRuntimePluginKey',
         'addRuntimePlugin',
         'addEntryImportsAhead',
diff --git a/packages/fes-plugin-built-in/src/plugins/commands/buildDevUtils.js b/packages/fes-plugin-built-in/src/utils/buildDevUtils.js
similarity index 100%
rename from packages/fes-plugin-built-in/src/plugins/commands/buildDevUtils.js
rename to packages/fes-plugin-built-in/src/utils/buildDevUtils.js
diff --git a/packages/fes-plugin-built-in/src/plugins/generateFiles/constants.js b/packages/fes-plugin-built-in/src/utils/constants.js
similarity index 100%
rename from packages/fes-plugin-built-in/src/plugins/generateFiles/constants.js
rename to packages/fes-plugin-built-in/src/utils/constants.js
diff --git a/packages/fes-plugin-built-in/src/plugins/commands/generateFiles.js b/packages/fes-plugin-built-in/src/utils/generateFiles.js
similarity index 100%
rename from packages/fes-plugin-built-in/src/plugins/commands/generateFiles.js
rename to packages/fes-plugin-built-in/src/utils/generateFiles.js
diff --git a/packages/fes-plugin-request/src/index.js b/packages/fes-plugin-request/src/index.js
index f51719c2..cc329b79 100644
--- a/packages/fes-plugin-request/src/index.js
+++ b/packages/fes-plugin-request/src/index.js
@@ -55,7 +55,7 @@ export default (api) => {
         });
     });
 
-    api.addFesExports(() => [
+    api.addExports(() => [
         {
             exportAll: true,
             source: `../${namespace}/request.js`