diff --git a/packages/uni-quickapp/lib/configure-webpack.js b/packages/uni-quickapp/lib/configure-webpack.js index d52655533122ec6ec9db9fb16c5ec5b31c680503..810a6730e140b2c1c77f69b5ee50c4f01687b1df 100644 --- a/packages/uni-quickapp/lib/configure-webpack.js +++ b/packages/uni-quickapp/lib/configure-webpack.js @@ -10,6 +10,8 @@ const NotifyPlugin = require('@hap-toolkit/packager/lib/plugin/notify-plugin') const Css2jsonPlugin = require('@hap-toolkit/dsl-vue/lib/plugin/css2json-plugin') const InstVuePlugin = require('@hap-toolkit/dsl-vue/lib/plugin/instvue-plugin') +const parseManifest = require('./manifest/index') + const env = { // 平台:native NODE_PLATFORM: 'native', @@ -19,10 +21,9 @@ const env = { const dslFilename = ('vue.' + (process.env.NODE_ENV === 'production' ? 'prod' : 'dev') + '.js') -const manifest = process.UNI_MANIFEST.quickapp || {} -const entryPagePath = process.UNI_PAGES.pages[0].path +parseManifest(process.UNI_PAGES, process.UNI_MANIFEST) -const versionCode = parseInt(manifest.versionCode || process.UNI_MANIFEST.versionCode) || 1 +const manifest = global.framework.manifest if (!manifest.package) { console.error(`maniest.json quickapp 节点缺少 package 配置`) @@ -39,11 +40,8 @@ function genPriorities(entryPagePath) { module.exports = { devtool: false, - entry: { - 'app': '/Users/fxy/Documents/demo/my-qa-project/src/App.vue?uxType=app', - 'pages/index/index': '/Users/fxy/Documents/demo/my-qa-project/src/pages/index/index.vue?uxType=page', - 'pages/detail/detail': '/Users/fxy/Documents/demo/my-qa-project/src/pages/detail/detail.vue?uxType=page', - 'pages/about/about': '/Users/fxy/Documents/demo/my-qa-project/src/pages/about/about.vue?uxType=page' + entry() { + return process.UNI_ENTRY }, plugins: [ new webpack.DefinePlugin({ @@ -62,16 +60,15 @@ module.exports = { new HandlerPlugin({}), new Css2jsonPlugin(), new InstVuePlugin(), - // TODO 目前 manifest,entryPagePath 是启动时读取一次 new ZipPlugin({ name: manifest.package, icon: manifest.icon, - versionCode, + versionCode: manifest.versionCode, output: path.resolve(process.env.UNI_OUTPUT_DIR, '..'), pathBuild: process.env.UNI_OUTPUT_DIR, pathSignFolder: './sign', sign: process.env.NODE_ENV === 'production' ? 'release' : 'debug', - priorities: genPriorities(entryPagePath), + priorities: genPriorities(manifest.router.entry), subpackages: undefined, comment: '', cwd: process.env.UNI_INPUT_DIR, diff --git a/packages/uni-quickapp/lib/manifest/entry-parser.js b/packages/uni-quickapp/lib/manifest/entry-parser.js new file mode 100644 index 0000000000000000000000000000000000000000..d5420d3512ba6a3f06f40c903a5abce3cec8a91b --- /dev/null +++ b/packages/uni-quickapp/lib/manifest/entry-parser.js @@ -0,0 +1,10 @@ +const path = require('path') +module.exports = function parseEntry(pages) { + const entry = { + 'app': path.resolve(process.env.UNI_INPUT_DIR, 'App.vue?uxType=app') + } + pages.forEach(page => { + entry[page.path] = path.resolve(process.env.UNI_INPUT_DIR, page.path + '.vue?uxType=page') + }) + return entry +} diff --git a/packages/uni-quickapp/lib/manifest/index.js b/packages/uni-quickapp/lib/manifest/index.js index 4eb25245a839433f93d330dc157760d2531f8fa3..e936379cb61e986e0e4555e58ca10f765ae7bd05 100644 --- a/packages/uni-quickapp/lib/manifest/index.js +++ b/packages/uni-quickapp/lib/manifest/index.js @@ -2,15 +2,20 @@ const parseBase = require('./base-parser') const parsePages = require('./pages-parser') const parseDisplay = require('./display-parser') +const parseEntry = require('./entry-parser') + module.exports = function(pagesJson, manifestJson, loader) { const manifest = manifestJson.quickapp || {} + parseBase(manifest, manifestJson) parsePages(manifest, pagesJson.pages) parseDisplay(manifest, pagesJson.pages, pagesJson.globalStyle) - global.framework.manifest = manifest - - loader.emitFile('manifest.json', JSON.stringify(manifest)) - + process.UNI_ENTRY = parseEntry(pagesJson.pages) + + global.framework.manifest = manifest + + loader && loader.emitFile('manifest.json', JSON.stringify(manifest)) + return '' } diff --git a/packages/vue-cli-plugin-uni/index.js b/packages/vue-cli-plugin-uni/index.js index f3cdd4b64f9855ecc94c20b896e771d9666ffa54..212b6ac6cb2ce9bb17034c2c9a525ef0910862db 100644 --- a/packages/vue-cli-plugin-uni/index.js +++ b/packages/vue-cli-plugin-uni/index.js @@ -22,7 +22,8 @@ module.exports = (api, options) => { if (process.env.UNI_PLATFORM === 'quickapp') { process.env.UNI_OUTPUT_DIR = path.resolve(process.env.UNI_OUTPUT_DIR, 'build') Object.assign(options, { - assetsDir, + assetsDir, + parallel: false, outputDir: process.env.UNI_OUTPUT_DIR }) require('./lib/options')(options)