Compare commits

13 Commits

13 changed files with 910 additions and 591 deletions

View File

@@ -20,6 +20,10 @@ try {
// 默认域名, 自定义发行时可以修改 // 默认域名, 自定义发行时可以修改
let defaultDomain = ''; let defaultDomain = '';
// #ifdef H5_XCX_5G_QUICKAPP_COM
defaultDomain = 'https://xcx20.5g-quickapp.com';
// #endif
// #ifdef H5_XCX_AIGC_QUICKAPP_COM // #ifdef H5_XCX_AIGC_QUICKAPP_COM
defaultDomain = 'https://xcx.aigc-quickapp.com/'; defaultDomain = 'https://xcx.aigc-quickapp.com/';
// #endif // #endif

View File

@@ -1162,5 +1162,47 @@ export default {
verifyMobile(mobile) { verifyMobile(mobile) {
var parse = /^\d{11}$/.test(mobile); var parse = /^\d{11}$/.test(mobile);
return parse; return parse;
},
/**
* 判断是否为快应用环境
* @returns {boolean} 是否为快应用
*/
isQuickApp() {
// #ifndef QUICKAPP-WEBVIEW
let _isQuickApp = false;
try {
const ua = navigator?.userAgent?.toLowerCase();
console.log('ua = ', ua);
_isQuickApp = ua.indexOf('quickapp') !== -1;
if (!_isQuickApp) {
// 特殊说明由于网站是嵌入到快应用的Webview组件中<web>UA中不会包含quickapp字符串
// 但是会包含uniacid参数所以这里通过uniacid参数来判断是否为快应用环境
_isQuickApp = ua.indexOf('uniacid=') !== -1;
}
} catch (e) {}
if (!_isQuickApp) {
const systemInfo = this.getDeviceInfo();
_isQuickApp = systemInfo?.platform === 'quickapp' || process?.env?.UNI_PLATFORM === 'quickapp';
}
return _isQuickApp;
// #endif
return true;
},
/**
* 判断是否为华为快应用环境
* @returns {boolean} 是否为华为快应用
*/
isHuaweiQuickApp() {
if (!this.isQuickApp()) return false;
// #ifndef QUICKAPP-WEBVIEW-HUAWEI
const systemInfo = this.getDeviceInfo();
return systemInfo.brand === 'HUAWEI' || systemInfo.manufacturer === 'HUAWEI' ||
(typeof qh !== 'undefined' && qh.platform === 'huawei');
// #endif
return true;
} }
} }

View File

@@ -1,237 +1,385 @@
<template> <template>
<!-- #ifdef MP --> <view>
<view v-if="showPop"> <view class="privacy-mask" v-if="showPop">
<view class="privacy-mask">
<view class="privacy-wrap"> <view class="privacy-wrap">
<view class="privacy-title">用户隐私保护提示</view> <view class="privacy-title">用户隐私保护提示</view>
<view class="privacy-desc"> <view class="privacy-desc">
感谢您使用本小程序在使用前您应当阅读并同意 感谢您使用{{ appName }}在使用前您应当阅读并同意
<text class="privacy-link" @tap="openPrivacyContract">{{privacyContractName}}</text> <text class="privacy-link" @tap="openPrivacyContract">{{ privacyContractName }}</text>
当点击同意并继续时即表示您已理解并同意该条款内容该条款将对您产生法律约束力如您不同意将无法继续使用小程序相关功能 <!-- #ifdef QUICKAPP-WEBVIEW || H5 -->
<text class="privacy-link" @tap="openPrivacyService">{{ privacyServiceName }}</text>
<!-- #endif -->
,当点击同意并继续时即表示您已理解并同意该条款内容该条款将对您产生法律约束力如您不同意将无法继续使用{{ appName }}相关功能
</view> </view>
<view class="privacy-button-flex"> <view class="privacy-button-flex">
<button class="privacy-button-btn bg-disagree" @tap="handleDisagree">不同意</button> <button class="privacy-button-btn bg-disagree" @tap="handleDisagree">不同意</button>
<button id="agree-btn" class="privacy-button-btn bg-agree" open-type="agreePrivacyAuthorization" @agreeprivacyauthorization="handleAgree">同意并继续</button> <!-- #ifdef QUICKAPP-WEBVIEW || MP-WEIXIN -->
<button id="agree-btn" class="privacy-button-btn bg-agree" open-type="agreePrivacyAuthorization"
@agreeprivacyauthorization="handleAgree">同意并继续</button>
<!-- #endif -->
<!-- #ifdef WEB || H5 -->
<button id="agree-btn" class="privacy-button-btn bg-agree" @tap="handleAgree" @click="handleAgree">同意并继续</button>
<!-- #endif -->
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<!-- #endif -->
<!-- #ifdef WEB || H5 -->
<view v-if="showPop"></view>
<!-- #endif -->
</template> </template>
<script> <script>
export default { // #ifdef QUICKAPP-WEBVIEW
data() { import has from '@system.has'
return { // #endif
agree: false,
showPop: false, const closeOtherPagePopUpHooks = new Set();
privacyAuthorization: null, const privacyContractPage = '/pages_tool/agreement/contenr?type=0';
privacyResolves: new Set(), const privacyServicePage = '/pages_tool/agreement/contenr?type=1';
closeOtherPagePopUpHooks: new Set(),
privacyContractName: '用户隐私保护指引' export default {
} name: 'PrivacyPopup',
}, data() {
mounted() { return {
this.init() agree: false,
this.curPageShow() showPop: false,
}, privacyAuthorization: null,
created() { privacyResolves: new Set(),
let that = this privacyContractName: '用户隐私保护指引',
appName: '本小程序',
// #ifdef WEB || H5
appName: '本应用',
privacyContractName: '《隐私条款》',
privacyServiceName: '《用户服务协议》',
// #endif
}
},
mounted() {
this.listenPrivacySettingChange()
this.curPageShow()
},
created() {
try {
// #ifdef MP-WEIXIN
//查询微信侧记录的用户是否有待同意的隐私政策信息 //查询微信侧记录的用户是否有待同意的隐私政策信息
try { wx.getPrivacySetting({
wx.getPrivacySetting({ success: (res) => {
success(res) { // console.log('隐私政策信息', res);
// console.log('隐私政策信息', res); // console.log(res.privacyContractName);
// console.log(res.privacyContractName); this.privacyContractName = res.privacyContractName
that.privacyContractName = res.privacyContractName }
} });
}); // #endif
} catch (e) {
// console.log("=========低版本基础库==========") // #ifdef QUICKAPP-WEBVIEW || H5
} if (this.$util.isQuickApp()) {
}, if (typeof has != 'undefined' && has?.getPrivacySetting) {
methods: { has.getPrivacySetting({
// 监听何时需要提示用户阅读隐私政策 success: (res) => {
init() { if (res.privacyContractName) {
let that = this; this.privacyContractName = res.privacyContractName
if (wx.onNeedPrivacyAuthorization) { }
wx.onNeedPrivacyAuthorization((resolve) => { },
if (typeof that.privacyAuthorization === 'function') {
that.privacyAuthorization(resolve)
}
}) })
} }
}, }
proactive() { // #endif
let that = this } catch (e) {
if (wx.getPrivacySetting) { console.error("=========低版本基础库==========", e)
wx.getPrivacySetting({ }
},
methods: {
getPrivacySettingByQuickApp() {
// #ifdef QUICKAPP-WEBVIEW || H5 || WEB
if (this.$util.isQuickApp()) {
if (typeof has != 'undefined' && has?.getPrivacySetting) {
has.getPrivacySetting({
success: (res) => { success: (res) => {
// console.log(res) // console.log(res)
if (res.needAuthorization) { if (res.needAuthorization) {
that.popUp() this.popUp()
// 额外逻辑:当前页面的隐私弹窗弹起的时候,关掉其他页面的隐私弹窗 // 额外逻辑:当前页面的隐私弹窗弹起的时候,关掉其他页面的隐私弹窗
this.closeOtherPagePopUp(this.disPopUp) this.closeOtherPagePopUp(this.disPopUp)
} else { } else {
this.$emit('agree') this.$emit('agree')
} }
}, },
})
} else {
// 属于嵌入到快应用Webview组件中的情况按照H5的方式来处理判断是否已经授权
if (uni.getStorageSync('privacyAgreed')) {
this.$emit('agree')
} else {
this.popUp()
// 额外逻辑:当前页面的隐私弹窗弹起的时候,关掉其他页面的隐私弹窗
this.closeOtherPagePopUp(this.disPopUp)
}
}
}
// #endif
},
listenPrivacySettingChange() {
// #ifdef MP-WEIXIN
// 监听微信侧隐私政策授权变化事件
if (wx.onNeedPrivacyAuthorization) {
wx.onNeedPrivacyAuthorization((resolve) => {
if (typeof this.privacyAuthorization === 'function') {
this.privacyAuthorization(resolve)
}
})
}
// #endif
// #ifdef QUICKAPP-WEBVIEW || H5 || WEB
if (this.$util.isQuickApp()) {
// 监听快速应用侧隐私政策授权变化事件
if (typeof has != 'undefined' && has?.onPrivacySettingChange) {
has.onPrivacySettingChange((res) => {
// console.log(res)
if (res.needAuthorization) {
this.popUp()
// 额外逻辑:当前页面的隐私弹窗弹起的时候,关掉其他页面的隐私弹窗
this.closeOtherPagePopUp(this.disPopUp)
} else {
this.$emit('agree')
}
})
}
}
// #endif
// 主动查询用户隐私政策授权状态,针对快速应用
this.getPrivacySettingByQuickApp();
},
// 主动查询用户隐私政策授权状态
proactive() {
// #ifdef MP-WEIXIN
if (wx.getPrivacySetting) {
wx.getPrivacySetting({
success: (res) => {
// console.log(res)
if (res.needAuthorization) {
this.popUp()
// 额外逻辑:当前页面的隐私弹窗弹起的时候,关掉其他页面的隐私弹窗
this.closeOtherPagePopUp(this.disPopUp)
} else {
this.$emit('agree')
}
},
});
} else {
this.$emit('agree')
}
// #endif
// #ifdef QUICKAPP-WEBVIEW
this.getPrivacySettingByQuickApp();
// #endif
},
//初始化监听程序
curPageShow() {
closeOtherPagePopUpHooks.add(this.disPopUp)
this.privacyAuthorization = resolve => {
this.privacyResolves.add(resolve)
//打开弹窗
this.popUp()
// 额外逻辑:当前页面的隐私弹窗弹起的时候,关掉其他页面的隐私弹窗
this.closeOtherPagePopUp(this.disPopUp)
}
},
// 额外逻辑:当前页面的隐私弹窗弹起的时候,关掉其他页面的隐私弹窗
closeOtherPagePopUp(closePopUp) {
closeOtherPagePopUpHooks.forEach(hook => {
if (closePopUp !== hook) {
hook()
}
})
},
//打开隐私协议
openPrivacyContract() {
// #ifdef MP-WEIXIN
wx.openPrivacyContract({
success(res) {
// console.log('打开隐私协议', res);
},
fail(err) {
// console.error('打开隐私协议失败', err)
}
});
// #endif
// #ifdef QUICKAPP-WEBVIEW || H5 || WEB
if (this.$util.isQuickApp()) {
if (typeof has != 'undefined' && has?.openPrivacySetting) {
has.openPrivacySetting({
success: (res) => {
// console.log('打开隐私协议', res);
},
fail: (err) => {
// console.error('打开隐私协议失败', err)
}
}); });
} else { } else {
this.$emit('agree') // 属于嵌入到快应用Webview组件中的情况按照H5的方式来处理
this.$util.redirectTo(privacyContractPage);
} }
}, } else {
//初始化监听程序 // H5 环境下的处理逻辑
curPageShow() { this.$util.redirectTo(privacyContractPage);
this.privacyAuthorization = resolve => { }
this.privacyResolves.add(resolve) // #endif
//打开弹窗 },
this.popUp() //打开用户服务协议
// 额外逻辑:当前页面的隐私弹窗弹起的时候,关掉其他页面的隐私弹窗 openPrivacyService() {
this.closeOtherPagePopUp(this.disPopUp) // #ifdef QUICKAPP-WEBVIEW || H5 || WEB
if (this.$util.isQuickApp()) {
if (typeof has != 'undefined' && has?.openPrivacySetting) {
has.openPrivacySetting({
success: (res) => {
// console.log('打开用户服务协议', res);
},
fail: (err) => {
// console.error('打开用户服务协议失败', err)
}
});
} else {
// 属于嵌入到快应用Webview组件中的情况按照H5的方式来处理
this.$util.redirectTo(privacyServicePage);
} }
this.closeOtherPagePopUpHooks.add(this.disPopUp) } else {
}, // H5 环境下的处理逻辑
// 额外逻辑:当前页面的隐私弹窗弹起的时候,关掉其他页面的隐私弹窗 this.$util.redirectTo(privacyServicePage);
closeOtherPagePopUp(closePopUp) { }
this.closeOtherPagePopUpHooks.forEach(hook => { // #endif
if (closePopUp !== hook) { },
hook() // 不同意
} handleDisagree() {
this.privacyResolves.forEach(resolve => {
resolve({
event: 'disagree',
}) })
}, })
//打开隐私协议 this.privacyResolves.clear()
openPrivacyContract() {
wx.openPrivacyContract({
success(res) {
// console.log('打开隐私协议', res);
},
fail(err) {
// console.error('打开隐私协议失败', err)
}
});
},
// 不同意
handleDisagree() {
this.privacyResolves.forEach(resolve => {
resolve({
event: 'disagree',
})
})
this.privacyResolves.clear()
//关闭弹窗
this.disPopUp()
//退出小程序
uni.showModal({
content: '未同意隐私协议,无法使用相关功能',
success: () => {
this.$emit('disagree')
}
})
},
// 同意并继续
handleAgree() {
this.privacyResolves.forEach(resolve => {
resolve({
event: 'agree',
buttonId: 'agree-btn'
})
})
this.privacyResolves.clear()
//关闭弹窗
this.disPopUp()
this.$emit('agree')
},
//打开弹窗
popUp() {
if (this.showPop === false) {
this.showPop = true
}
},
//关闭弹窗 //关闭弹窗
disPopUp() { this.disPopUp()
if (this.showPop === true) { //退出小程序
this.showPop = false uni.showModal({
content: '未同意隐私协议,无法使用相关功能',
success: () => {
this.$emit('disagree')
} }
}, })
} },
} // 同意并继续
handleAgree() {
this.privacyResolves.forEach(resolve => {
resolve({
event: 'agree',
buttonId: 'agree-btn'
})
})
this.privacyResolves.clear()
//关闭弹窗
this.disPopUp()
// #ifdef QUICKAPP-WEBVIEW || H5 || WEB
// 保存用户授权状态到本地存储用于快应用Webview组件中的H5方式处理
uni.setStorageSync('privacyAgreed', true);
// #endif
this.$emit('agree')
},
//打开弹窗
popUp() {
this.showPop = true;
},
//关闭弹窗
disPopUp() {
this.showPop = false;
},
},
beforeDestroy() {
// 清理事件监听器和集合
this.privacyResolves.clear()
closeOtherPagePopUpHooks.delete(this.disPopUp)
// 注意:这里需要根据实际情况清理微信和快速应用的事件监听器
// 由于微信的 wx.onNeedPrivacyAuthorization 没有对应的 off 方法,这里可能需要其他方式处理
},
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.privacy-mask { .privacy-mask {
position: fixed; position: fixed;
z-index: 5000; z-index: 5000;
top: 0; top: 0;
right: 0; right: 0;
left: 0; left: 0;
bottom: 0; bottom: 0;
background: rgba(0, 0, 0, 0.2); background: rgba(0, 0, 0, 0.2);
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
} }
.privacy-wrap { .privacy-wrap {
width: 632rpx; width: 632rpx;
padding: 48rpx 30rpx; padding: 48rpx 30rpx;
box-sizing: border-box; box-sizing: border-box;
background: #fff; background: #fff;
border-radius: 16rpx; border-radius: 16rpx;
} }
.privacy-title { .privacy-title {
padding: 0rpx 30rpx 40rpx 30rpx; padding: 0rpx 30rpx 40rpx 30rpx;
font-weight: 700; font-weight: 700;
font-size: 36rpx; font-size: 36rpx;
text-align: center; text-align: center;
} }
.privacy-desc { .privacy-desc {
font-size: 30rpx; font-size: 30rpx;
color: #555; color: #555;
line-height: 2; line-height: 2;
text-align: left; text-align: left;
padding: 0 40rpx; padding: 0 40rpx;
} }
.privacy-link { .privacy-link {
color: #2f80ed; color: #2f80ed;
} }
.privacy-button-flex { .privacy-button-flex {
display: flex; display: flex;
padding: 20rpx 40rpx; padding: 20rpx 40rpx;
} }
.privacy-button-btn { .privacy-button-btn {
color: #FFF; color: #FFF;
font-size: 30rpx; font-size: 30rpx;
font-weight: 500; // #ifdef QUICKAPP-WEBVIEW || H5 || WEB
line-height: 100rpx; font-size: 28rpx;
text-align: center; // #endif
height: 100rpx; font-weight: 500;
border-radius: 20rpx; line-height: 100rpx;
border: none; text-align: center;
background: #07c160; height: 100rpx;
flex: 1; border-radius: 20rpx;
margin-right: 30rpx; border: none;
justify-content: center; background: #07c160;
} flex: 1;
margin-right: 30rpx;
justify-content: center;
}
.privacy-button-btn::after { .privacy-button-btn::after {
border: none; border: none;
} }
.bg-disagree { .bg-disagree {
color: #07c160; color: #07c160;
background: #f2f2f2; background: #f2f2f2;
} }
.bg-agree { .bg-agree {
margin-right: 0rpx; margin-right: 0rpx;
} }
</style> </style>

View File

@@ -1,6 +1,6 @@
export const lang = { export const lang = {
//title为每个页面的标题 //title为每个页面的标题
title: '退款', title: '售后',
checkDetail: '查看详情', checkDetail: '查看详情',
emptyTips: '暂无退款记录' emptyTips: '暂无售后记录'
} }

View File

@@ -103,7 +103,7 @@
}, },
"router" : { "router" : {
"mode" : "history", "mode" : "history",
"base" : "/hwappx/common/" "base" : "/hwappx/2811/"
}, },
"title" : "", "title" : "",
"devServer" : { "devServer" : {

View File

@@ -21,6 +21,17 @@
"PRODUCTION": true "PRODUCTION": true
} }
}, },
"h5-xcx20.5g-quickapp.com": {
"title": "H5-xcx20.5g-quickapp.com",
"env": {
"UNI_PLATFORM": "h5"
},
"define": {
"H5_XCX_5G_QUICKAPP_COM": true,
"H5_PRODUCTION": true,
"PRODUCTION": true
}
},
"h5-xcx.aigc-quickapp.com": { "h5-xcx.aigc-quickapp.com": {
"title": "H5-xcx.aigc-quickapp.com", "title": "H5-xcx.aigc-quickapp.com",
"env": { "env": {

View File

@@ -137,10 +137,8 @@
</uni-popup> </uni-popup>
</view> </view>
<hover-nav :need="true"></hover-nav> <hover-nav :need="true"></hover-nav>
<!-- #ifdef MP-WEIXIN --> <!-- 隐私协议 -->
<!-- 小程序隐私协议 -->
<privacy-popup ref="privacyPopup"></privacy-popup> <privacy-popup ref="privacyPopup"></privacy-popup>
<!-- #endif -->
<to-top v-if="showTop" @toTop="scrollToTopNative()"></to-top> <to-top v-if="showTop" @toTop="scrollToTopNative()"></to-top>
<ns-login ref="login"></ns-login> <ns-login ref="login"></ns-login>
</view> </view>

View File

@@ -321,6 +321,7 @@ export default {
<style scoped> <style scoped>
>>>.uni-tag--primary.uni-tag--inverted { >>>.uni-tag--primary.uni-tag--inverted {
background-color: #f5f5f5 !important; background-color: #f5f5f5 !important;
} }
/deep/ .sku-layer .uni-popup__wrapper.uni-custom .uni-popup__wrapper-box { /deep/ .sku-layer .uni-popup__wrapper.uni-custom .uni-popup__wrapper-box {

View File

@@ -400,7 +400,7 @@
.price { .price {
color: var(--price-color); color: var(--price-color);
color: #fff !important; color: #fff !important;
font-size: 15rpx !important; font-size: 27rpx !important;
font-weight: bold !important; font-weight: bold !important;
} }
} }

File diff suppressed because it is too large Load Diff

View File

@@ -96,6 +96,7 @@ export default {
this.$store.commit('setMemberInfo', ''); this.$store.commit('setMemberInfo', '');
this.$store.dispatch('emptyCart'); this.$store.dispatch('emptyCart');
uni.removeStorageSync('authInfo'); uni.removeStorageSync('authInfo');
uni.removeStorageSync('privacyAgreed');
this.$util.redirectTo(this.$util.MEMBER_PAGE_URL); this.$util.redirectTo(this.$util.MEMBER_PAGE_URL);
} }
} }
@@ -118,7 +119,9 @@ export default {
this.$store.commit('setMemberInfo', ''); this.$store.commit('setMemberInfo', '');
this.$store.dispatch('emptyCart'); this.$store.dispatch('emptyCart');
uni.removeStorageSync('authInfo'); uni.removeStorageSync('authInfo');
uni.removeStorageSync('privacyAgreed');
this.$util.redirectTo(this.$util.MEMBER_PAGE_URL); this.$util.redirectTo(this.$util.MEMBER_PAGE_URL);
} else { } else {
this.$util.showToast({ this.$util.showToast({
title: rres.message title: rres.message

View File

@@ -30,9 +30,10 @@
1. 使用HBuilderX打开项目 1. 使用HBuilderX打开项目
2. 选择菜单栏 "发行" -> "小程序-微信",进行发布构建 2. 选择菜单栏 "发行" -> "小程序-微信",进行发布构建
3. 然后在终端进入项目根目录,执行 `npm run mp-weixin` 手动输出构建包。例如mp-weixin-2025-10-31-1761881054836.zip 4. 0
4. 然后mp-weixin-2025-10-31-1761881054836发给微信开发定制客户技术人员, 3. 然后在终端进入项目根目录,执行 `npm run mp-weixin` 手动输出构建包。例如:mp-weixin-2025-10-31-1761881054836.zip改id
5. 定制客户技术人员可以修改解压后修改项目根目录下的site.js进行针对客户的信息配置然后使用微信开发者工具打开发布后的代码进行上传发布 5. 然后将mp-weixin-2025-10-31-1761881054836发给微信开发定制客户技术人员
6. 定制客户技术人员可以修改解压后修改项目根目录下的site.js进行针对客户的信息配置然后使用微信开发者工具打开发布后的代码进行上传发布
参照:`common\js\config.js` 文件内容说明: 参照:`common\js\config.js` 文件内容说明:
@@ -114,5 +115,8 @@ export default config;
### 快应用发布 ### 快应用发布
1. 使用HBuilderX打开项目 1. 使用HBuilderX打开项目
2. 选择菜单栏 "发行" -> "快应用",进行发布构建 2. manifest.jion---web配置---基础路径---/hwappx/改编号/
3. 使用快应用开发者工具打开发布后的代码进行上传发布 3. 选择菜单栏 "发行" ->自定义发行---H5-xcx.aigc-quickapp.com "快应用",进行发布构建
4. unpackage---dist---build---web---打包可以写上id
5. 然后将压缩包发给开发定制客户技术人员,
6. 使用快应用开发者工具打开发布后的代码进行上传发布

View File

@@ -1,8 +1,40 @@
const path = require('path');
const { zionUniMpLoadPackagePlugin } = require('zion-uniapp-mp-load-package/webpack'); const { zionUniMpLoadPackagePlugin } = require('zion-uniapp-mp-load-package/webpack');
// 打印出process.env
// for (let key in process.env) {
// console.log(key, process.env[key]);
// }
// 定义UNI_OUTPUT_DIR环境变量
try {
if (!process.env.NODE_ENV) {
throw new Error('NODE_ENV 环境变量未设置');
}
const buildDir = process.env.NODE_ENV === 'production' ? 'build' : 'dev';
const UNI_SCRIPT = process.env.UNI_SCRIPT ?? '';
if ([
// 参照 package.json 中定义的 "uni-app" --> "scripts"
'h5-xcx20.5g-quickapp.com', 'h5-xcx.aigc-quickapp.com', 'h5-5g.aigc-quickapp.com', 'h5-test.aigc-quickapp.com'
].includes(UNI_SCRIPT)) {
process.env.UNI_OUTPUT_DIR = path.join(__dirname, `unpackage/dist/${buildDir}/h5/${UNI_SCRIPT}`);
console.log('UNI_OUTPUT_DIR = ', process.env.UNI_OUTPUT_DIR);
}
} catch (e) {
console.log('NODE_ENV 环境变量未设置,默认使用开发模式');
}
// 导出配置
module.exports = { module.exports = {
productionSourceMap: false, productionSourceMap: false,
configureWebpack: config => { configureWebpack: config => {
console.log('config.mode = ', config.mode); console.log('config.mode = ', config.mode);
if (config.mode === 'production') { if (config.mode === 'production') {
console.log('开始尝试配置极限压缩'); console.log('开始尝试配置极限压缩');
// 配置zion-uniapp-mp-load-package插件 // 配置zion-uniapp-mp-load-package插件