From a6d2195504a3dd76a49cad9dc5a17028f3d7bc6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E4=BA=9A=E7=90=AA?= Date: Wed, 8 Jun 2022 16:39:38 +0800 Subject: [PATCH] feat: import @/pages.json --- .../vue-cli-plugin-uni/lib/chain-webpack.js | 14 ++++++++++++-- .../webpack-uni-pages-loader/lib/index-new.js | 9 +++++++++ packages/webpack-uni-pages-loader/lib/index.js | 17 +++++++++++++---- 3 files changed, 34 insertions(+), 6 deletions(-) diff --git a/packages/vue-cli-plugin-uni/lib/chain-webpack.js b/packages/vue-cli-plugin-uni/lib/chain-webpack.js index a4d79df74..9bb76a272 100644 --- a/packages/vue-cli-plugin-uni/lib/chain-webpack.js +++ b/packages/vue-cli-plugin-uni/lib/chain-webpack.js @@ -8,11 +8,11 @@ const { getPartialIdentifier } = require('./util') -function resolve (dir) { +function resolve(dir) { return path.resolve(__dirname, '..', dir) } -module.exports = function chainWebpack (platformOptions, vueOptions, api) { +module.exports = function chainWebpack(platformOptions, vueOptions, api) { const { runByHBuilderX, // 使用 HBuilderX 运行 cssPreprocessOptions @@ -150,5 +150,15 @@ module.exports = function chainWebpack (platformOptions, vueOptions, api) { if (process.env.BUILD_ENV === 'ali-ide') { webpackConfig.plugins.delete('progress') } + webpackConfig.resolve.alias + .delete('@') + .set( + '@/pages.json', + path.resolve(process.env.UNI_INPUT_DIR, 'pages.json') + + '?' + JSON.stringify({ + type: 'origin-pages-json' + }) + ) + .set('@', path.resolve(process.env.UNI_INPUT_DIR)) } } diff --git a/packages/webpack-uni-pages-loader/lib/index-new.js b/packages/webpack-uni-pages-loader/lib/index-new.js index 86b75ac55..ea11d795c 100644 --- a/packages/webpack-uni-pages-loader/lib/index-new.js +++ b/packages/webpack-uni-pages-loader/lib/index-new.js @@ -84,6 +84,15 @@ module.exports = function (content, map) { process.exit(0) } + if (this.resourceQuery) { + const queryParam = loaderUtils.parseQuery(this.resourceQuery) + if (queryParam) { + if (queryParam.type === 'origin-pages-json') { + return `export default ${JSON.stringify(pagesJson)}` + } + } + } + if (global.uniPlugin.defaultTheme) { pagesJson = parseTheme(pagesJson) this.addDependency(path.resolve(process.env.UNI_INPUT_DIR, 'theme.json')) diff --git a/packages/webpack-uni-pages-loader/lib/index.js b/packages/webpack-uni-pages-loader/lib/index.js index f59420986..752c9a718 100644 --- a/packages/webpack-uni-pages-loader/lib/index.js +++ b/packages/webpack-uni-pages-loader/lib/index.js @@ -31,12 +31,13 @@ function checkEmitFile (filePath, jsonObj, changedEmitFiles) { module.exports = function (content, map) { // content = JSON.stringify(require('@dcloudio/uni-cli-shared/lib/uni_modules').getPagesJson(content)) + let queryParam if (this.resourceQuery) { - const params = loaderUtils.parseQuery(this.resourceQuery) - if (params) { - if (params.type === 'style') { + queryParam = loaderUtils.parseQuery(this.resourceQuery) + if (queryParam) { + if (queryParam.type === 'style') { return `export default ${JSON.stringify(getPagesJson())}` - } else if (params.type === 'stat') { + } else if (queryParam.type === 'stat') { return `export default ${JSON.stringify(process.UNI_STAT_CONFIG || {})}` } } @@ -73,6 +74,14 @@ module.exports = function (content, map) { } }) + if (this.resourceQuery && queryParam) { + if (queryParam) { + if (queryParam.type === 'origin-pages-json') { + return `export default ${JSON.stringify(pagesJson)}` + } + } + } + if (manifestJson.transformPx === false) { process.UNI_TRANSFORM_PX = false } else { -- GitLab