diff --git a/packages/vue-cli-plugin-uni/lib/copy-webpack-options.js b/packages/vue-cli-plugin-uni/lib/copy-webpack-options.js index 83deed2d77b91c284e44c9acb45b821b7cc5e136..c769e74212d6e91efd916c4e5b90dc545cf076df 100644 --- a/packages/vue-cli-plugin-uni/lib/copy-webpack-options.js +++ b/packages/vue-cli-plugin-uni/lib/copy-webpack-options.js @@ -31,24 +31,40 @@ function getAssetsCopyOption (from, options = {}) { ) } } + +function addIgnore (ignore, platform) { + if (CopyWebpackPluginVersion > 5) { + if (platform === 'app-plus') { + ignore.push(`${process.env.UNI_INPUT_DIR.replace(/\\/g, '/')}/static/app/**/*`) + } else if (platform === 'h5') { + ignore.push(`${process.env.UNI_INPUT_DIR.replace(/\\/g, '/')}/static/web/**/*`) + } + ignore.push(`${process.env.UNI_INPUT_DIR.replace(/\\/g, '/')}/static/${platform}/**/*`) + } else { + if (platform === 'app-plus') { + ignore.push('app/**/*') + } else if (platform === 'h5') { + ignore.push('web/**/*') + } + ignore.push(platform + '/**/*') + } +} // 暂未考虑动态添加static目录 function getAssetsCopyOptions (assetsDir) { const ignore = [] global.uniPlugin.platforms.forEach(platform => { if (global.uniPlugin.name !== platform) { - if (CopyWebpackPluginVersion > 5) { - ignore.push(`${process.env.UNI_INPUT_DIR.replace(/\\/g, '/')}/static/${platform}/**/*`) - } else { - ignore.push(platform + '/**/*') - } + addIgnore(ignore, platform) } }) const copyOptions = [] // 主包静态资源 const mainAssetsCopyOption = getAssetsCopyOption(assetsDir, CopyWebpackPluginVersion > 5 ? { - globOptions: { ignore } + globOptions: { + ignore + } } : { ignore }) @@ -59,7 +75,9 @@ function getAssetsCopyOptions (assetsDir) { process.UNI_SUBPACKAGES && Object.keys(process.UNI_SUBPACKAGES).forEach(root => { const subAssetsCopyOption = getAssetsCopyOption(path.join(root, assetsDir), CopyWebpackPluginVersion > 5 ? { - globOptions: { ignore } + globOptions: { + ignore + } } : { ignore }) @@ -124,4 +142,4 @@ function getCopyWebpackPluginOptions (platformOptions, vueOptions) { module.exports = { assetsDir, getCopyWebpackPluginOptions -} +} diff --git a/packages/webpack-uni-pages-loader/lib/platforms/h5.js b/packages/webpack-uni-pages-loader/lib/platforms/h5.js index 2d8a18bab51bc7598a9056bf70dd4fcd605019de..d1abd5fef1d9fd7294144e2cab95cd2df4261af7 100644 --- a/packages/webpack-uni-pages-loader/lib/platforms/h5.js +++ b/packages/webpack-uni-pages-loader/lib/platforms/h5.js @@ -69,8 +69,8 @@ const getPageComponents = function (inputDir, pagesJson) { Object.assign( globalStyle, - globalStyle['app-plus'] || {}, - globalStyle.h5 || {} + globalStyle.app || globalStyle['app-plus'] || {}, + globalStyle.web || globalStyle.h5 || {} ) if (process.env.UNI_SUB_PLATFORM) { @@ -99,7 +99,7 @@ const getPageComponents = function (inputDir, pagesJson) { } } // 解析 titleNView,pullToRefresh - const h5Options = Object.assign({}, props['app-plus'] || {}, props.h5 || {}) + const h5Options = Object.assign({}, props.app || props['app-plus'] || {}, props.web || props.h5 || {}) if (process.env.UNI_SUB_PLATFORM) { Object.assign(h5Options, props[process.env.UNI_SUB_PLATFORM] || {}) @@ -123,33 +123,31 @@ const getPageComponents = function (inputDir, pagesJson) { always: 'float' } let titleNView = pageStyle.titleNView - titleNView = Object.assign( - {}, - { - type: pageStyle.navigationStyle === 'custom' ? 'none' : 'default' - }, - pageStyle.transparentTitle in titleNViewTypeList - ? { - type: titleNViewTypeList[pageStyle.transparentTitle], - backgroundColor: 'rgba(0,0,0,0)' + titleNView = Object.assign({}, { + type: pageStyle.navigationStyle === 'custom' ? 'none' : 'default' + }, + pageStyle.transparentTitle in titleNViewTypeList ? { + type: titleNViewTypeList[pageStyle.transparentTitle], + backgroundColor: 'rgba(0,0,0,0)' + } + : null, + typeof titleNView === 'object' + ? titleNView + : ( + typeof titleNView === 'boolean' ? { + type: titleNView ? 'default' : 'none' } - : null, - typeof titleNView === 'object' - ? titleNView - : ( - typeof titleNView === 'boolean' - ? { - type: titleNView ? 'default' : 'none' - } - : null - ) + : null + ) ) if (titleNView.type === 'none' || titleNView.type === 'transparent') { windowTop = 0 } // 删除 app-plus 平台配置 + delete props.app delete props['app-plus'] + delete props.web delete props.h5 if (process.env.UNI_SUB_PLATFORM) { @@ -466,4 +464,4 @@ ${genRegisterPageVueComponentsCode(pageComponents)} global.__uniRoutes=[${genPageRoutes(pageComponents).concat(genSystemRoutes()).join(',')}] global.UniApp && new global.UniApp(); ` -} +} diff --git a/packages/webpack-uni-pages-loader/lib/util.js b/packages/webpack-uni-pages-loader/lib/util.js index 827694e347c78e987907c9cde3c0738b45667613..efa7073ce1a8522c9120315f9e412e46e464d643 100644 --- a/packages/webpack-uni-pages-loader/lib/util.js +++ b/packages/webpack-uni-pages-loader/lib/util.js @@ -68,7 +68,13 @@ function parseStyle (style = {}, root = '') { Object.keys(style).forEach(name => { if (PLATFORMS.includes(name)) { if (name === process.env.UNI_PLATFORM) { - platformStyle = style[name] || {} + if (name === 'app-plus') { + platformStyle = style.app || style[name] || {} + } else if (name === 'h5') { + platformStyle = style.web || style[name] || {} + } else { + platformStyle = style[name] || {} + } } delete style[name] } @@ -153,4 +159,4 @@ module.exports = { parseTabBar, trimMPJson, NON_APP_JSON_KEYS -} +}