diff --git a/packages/uni-cli-shared/lib/manifest.js b/packages/uni-cli-shared/lib/manifest.js index 7e0748a75c03e30020572bbc000d5ca50dbc6dac..7619a2171665402aca7c59be87ea6d00c7d9a87f 100644 --- a/packages/uni-cli-shared/lib/manifest.js +++ b/packages/uni-cli-shared/lib/manifest.js @@ -108,7 +108,7 @@ function isEnableUniPushV1 (manifestJson, platform) { if (isEnableUniPushV2(manifestJson, platform)) { return false } - if (platform === 'app-plus') { + if (platform === 'app-plus') { const platformOptions = manifestJson[platform] const sdkConfigs = platformOptions && platformOptions.distribute && platformOptions.distribute.sdkConfigs const push = sdkConfigs && sdkConfigs.push @@ -135,6 +135,14 @@ function isEnableUniPushV2 (manifestJson, platform) { return platformOptions && platformOptions.unipush && platformOptions.unipush.enable === true } +function isEnableSecureNetwork (manifestJson, platform) { + if (!manifestJson) { + manifestJson = getManifestJson() + } + const platformOptions = manifestJson[platform] + return platformOptions && platformOptions.secureNetwork && platformOptions.secureNetwork.enable === true +} + function isUniPushOffline (manifestJson) { if (!manifestJson) { manifestJson = getManifestJson() @@ -149,8 +157,9 @@ module.exports = { getManifestJson, parseManifestJson, getNetworkTimeout, - getH5Options, + getH5Options, isEnableUniPushV1, isEnableUniPushV2, - isUniPushOffline -} + isUniPushOffline, + isEnableSecureNetwork +} diff --git a/packages/vue-cli-plugin-hbuilderx/build/webpack.nvue.conf.js b/packages/vue-cli-plugin-hbuilderx/build/webpack.nvue.conf.js index 97be217eea33cf3a70872553674c2fd809080151..db325fec1bddf78d7cb6ba90d3b0f111c856fbc7 100644 --- a/packages/vue-cli-plugin-hbuilderx/build/webpack.nvue.conf.js +++ b/packages/vue-cli-plugin-hbuilderx/build/webpack.nvue.conf.js @@ -91,6 +91,7 @@ const plugins = [ UNI_PLATFORM: JSON.stringify(process.env.UNI_PLATFORM), VUE_APP_PLATFORM: JSON.stringify(process.env.UNI_PLATFORM), UNI_CLOUD_PROVIDER: process.env.UNI_CLOUD_PROVIDER, + UNI_SECURE_NETWORK: process.env.UNI_SECURE_NETWORK, UNICLOUD_DEBUG: process.env.UNICLOUD_DEBUG, RUN_BY_HBUILDERX: process.env.RUN_BY_HBUILDERX, UNI_AUTOMATOR_WS_ENDPOINT: JSON.stringify(process.env.UNI_AUTOMATOR_WS_ENDPOINT), diff --git a/packages/vue-cli-plugin-uni/lib/chain-webpack.js b/packages/vue-cli-plugin-uni/lib/chain-webpack.js index b263aca74bafdfccafc5ac9b79dc1cf9e837e9bc..f4076ded6b7b287e16961cc50632e1d8bcfa7b6b 100644 --- a/packages/vue-cli-plugin-uni/lib/chain-webpack.js +++ b/packages/vue-cli-plugin-uni/lib/chain-webpack.js @@ -135,6 +135,7 @@ module.exports = function chainWebpack (platformOptions, vueOptions, api) { 'process.env.UNI_PLATFORM': JSON.stringify(process.env.UNI_PLATFORM), 'process.env.UNI_SUB_PLATFORM': JSON.stringify(process.env.UNI_SUB_PLATFORM), 'process.env.UNI_CLOUD_PROVIDER': process.env.UNI_CLOUD_PROVIDER, + 'process.env.UNI_SECURE_NETWORK': process.env.UNI_SECURE_NETWORK, 'process.env.UNICLOUD_DEBUG': process.env.UNICLOUD_DEBUG, 'process.env.RUN_BY_HBUILDERX': process.env.RUN_BY_HBUILDERX, 'process.env.UNI_AUTOMATOR_WS_ENDPOINT': JSON.stringify(process.env.UNI_AUTOMATOR_WS_ENDPOINT), @@ -160,6 +161,14 @@ module.exports = function chainWebpack (platformOptions, vueOptions, api) { defines.__UNI_ROUTER_MODE__ = JSON.stringify('hash') } + if (process.env.UNI_CLOUD_PROVIDER && process.env.NODE_ENV !== 'development') { + webpackConfig.optimization.minimizer('terser').tap((args) => { + // reduce_vars 优化常量 + args[0].terserOptions.compress.reduce_vars = true + return args + }) + } + webpackConfig .plugin('uni-define') .use(require.resolve('webpack/lib/DefinePlugin'), [defines]) diff --git a/packages/vue-cli-plugin-uni/lib/env.js b/packages/vue-cli-plugin-uni/lib/env.js index a8b151a51f9429fa8ed3c6d104024dff25d52207..21cbe12718350a50bda884df1889b676ea820f49 100644 --- a/packages/vue-cli-plugin-uni/lib/env.js +++ b/packages/vue-cli-plugin-uni/lib/env.js @@ -24,7 +24,8 @@ const { getManifestJson, isEnableUniPushV1, isEnableUniPushV2, - isUniPushOffline + isUniPushOffline, + isEnableSecureNetwork } = require('@dcloudio/uni-cli-shared/lib/manifest') const manifestJsonObj = getManifestJson() @@ -129,6 +130,9 @@ if (!process.env.UNI_CLOUD_PROVIDER && process.env.UNI_CLOUD_SPACES) { } catch (e) {} } +// 安全网络 +process.env.UNI_SECURE_NETWORK = isEnableSecureNetwork(manifestJsonObj, process.env.UNI_PLATFORM) + // 初始化环境变量 process.env.UNI_CLI_CONTEXT = require('@dcloudio/uni-cli-shared/lib/util').getCLIContext()