diff --git a/examples/router/autoRoutes.js b/examples/router/autoRoutes.js index b8a7830b..5a2775df 100644 --- a/examples/router/autoRoutes.js +++ b/examples/router/autoRoutes.js @@ -14,47 +14,35 @@ export default { }, loadApps() { //新App的自动化格式 - const apps = require.context('../../', true, /\.(\/.+)\/App[A-Z][^\/]+\.vue$/, 'lazy') - if (process.env.VUE_APP_DEV_MODE == 'fast') { - waiting.init({innerHTML: '应用加载中..'}) - axios.post("/node/wechatapps/list", null, { - params: {type: 'web', size: 999}, baseURL: "/ns" - }).then(res => { - if (res?.data) { - return res.data.records.map(({label, name, libPath: path, id}) => { - waiting.setContent(`加载${name}...`) - const module = () => apps(`.${path}.vue`) - const addApp = {label, name: id, path, component: appEntry, module} - router.addRoute(addApp) - store.commit("addApp", addApp) - }) - } - }).finally(() => waiting.close()) - } else { - waiting.init({innerHTML: '应用加载中..'}) - Promise.all(apps.keys().map(path => apps(path).then(file => { - if (file.default) { - let {name, label} = file.default, - addApp = { - name: path.replace(/\.\/?(vue)?/g, '')?.split("/").join("_"), label: label || name, - path: path.replace(/\.(\/.+\/App.+)\.vue$/, '$1'), - component: appEntry, - module: file.default - } - waiting.setContent(`加载${name}...`) - router.addRoute(addApp) - //命名规范入口文件必须以App开头 - return store.commit("addApp", addApp) - } else return 0 - }))).then(() => { - axios.post("/node/wechatapps/addOrUpdate", { - type: "web", - list: this.routes().map(({path: libPath, label, module: {name}, name: id}) => ({ - id, type: 'web', libPath, label, name - })) - }, {baseURL: "/ns"}).catch(() => 0) - waiting.close() - }) - } + let apps = require.context('../../packages/', true, /\.(\/.+)\/App[A-Z][^\/]+\.vue$/, 'lazy'), + projects = require.context('../../project/', true, /\.(\/.+)\/App[A-Z][^\/]+\.vue$/, 'lazy') + const promise = (mods, base) => Promise.all(mods.keys().map(path => mods(path).then(file => { + if (file.default) { + let {name, label} = file.default, + addApp = { + name: path.replace(/\.\/?(vue)?/g, '')?.split("/").join("_"), label: label || name, + path: `/${base}${path.replace(/\.(\/.+\/App.+)\.vue$/, '$1')}`, + component: appEntry, + module: file.default + } + waiting.setContent(`加载${name}...`) + router.addRoute(addApp) + //命名规范入口文件必须以App开头 + return store.commit("addApp", addApp) + } else return 0 + }))) + waiting.init({innerHTML: '应用加载中..'}) + Promise.all([ + promise(apps, "packages"), + promise(projects, "project") + ]).then(() => { + axios.post("/node/wechatapps/addOrUpdate", { + type: "web", + list: this.routes().map(({path: libPath, label, module: {name}, name: id}) => ({ + id, type: 'web', libPath, label, name + })) + }, {baseURL: "/ns"}).catch(() => 0) + waiting.close() + }) } } diff --git a/package.json b/package.json index 4939a967..a8aff39e 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,6 @@ "main": "lib/cw-webapps.common.js", "scripts": { "dev": "vue-cli-service serve", - "fast": "npx cross-env VUE_APP_DEV_MODE=fast vue-cli-service serve", "lib": "vue-cli-service build --no-clean --target lib --dest lib packages/index.js&&npm unpublish --force&&npm publish", "lib:core": "vue-cli-service build --target lib --dest core/dist core/index.js --name dvcp-core&&npm unpublish dvcp-core --force&&npm publish core/", "lib:project": "node project/build.js", diff --git a/vue.config.js b/vue.config.js index 50ad2aef..e7baba86 100644 --- a/vue.config.js +++ b/vue.config.js @@ -17,7 +17,7 @@ module.exports = { filename: 'index.html' } }, - transpileDependencies: [/node_modules[/\\]dvcp-ui(.+)utils.js/, /node_modules[/\\]dvcp-ui(.+)modules.js/,/node_modules[/\\]dvcp-ui(.+)request.js/], + transpileDependencies: [/node_modules[/\\]dvcp-ui[\\\/]lib[\\\/]js/], chainWebpack: (config) => { config.module .rule('js')