feat: demo显示通过 VITE_SHOW_DEMO 控制

This commit is contained in:
Burt 2024-01-20 16:23:27 +08:00
parent 39e4fda14f
commit d17efc5433
3 changed files with 51 additions and 49 deletions

3
env/.env vendored
View File

@ -5,7 +5,6 @@ VITE_APP_PORT = 9000
VITE_UNI_APPID = 'H5871D791' VITE_UNI_APPID = 'H5871D791'
VITE_WX_APPID = 'wxa2abb91f64032a2b' VITE_WX_APPID = 'wxa2abb91f64032a2b'
# 不在src里面引用的变量可以不加 VITE_ 前缀
# 是否显示DEMO1-显示0-不显示, # 是否显示DEMO1-显示0-不显示,
# TODO通过新增 .env.local 改写 # TODO通过新增 .env.local 改写
SHOW_DEMO=0 VITE_SHOW_DEMO=0

View File

@ -1,5 +1,11 @@
import { defineUniPages } from '@uni-helper/vite-plugin-uni-pages' import { defineUniPages } from '@uni-helper/vite-plugin-uni-pages'
import { hideDemoPages } from './vite.config' import path from 'node:path'
import { loadEnv } from 'vite'
// 获取环境变量的范例
const env = loadEnv(process.env.NODE_ENV!, path.resolve(process.cwd(), 'env'))
// console.log(env)
const { VITE_SHOW_DEMO } = env
export default defineUniPages({ export default defineUniPages({
globalStyle: { globalStyle: {
@ -25,42 +31,44 @@ export default defineUniPages({
fontSize: '10px', fontSize: '10px',
iconWidth: '24px', iconWidth: '24px',
spacing: '3px', spacing: '3px',
list: hideDemoPages list:
? [ VITE_SHOW_DEMO === '1'
{ ? [
iconPath: 'static/tabbar/home.png', {
selectedIconPath: 'static/tabbar/homeHL.png', iconPath: 'static/tabbar/home.png',
pagePath: 'pages/index/index', selectedIconPath: 'static/tabbar/homeHL.png',
text: '首页', pagePath: 'pages/index/index',
}, text: '首页',
{ },
iconPath: 'static/tabbar/personal.png', // 生产环境要注释掉demo所以分开来写
selectedIconPath: 'static/tabbar/personalHL.png', {
pagePath: 'pages/my/index', iconPath: 'static/tabbar/example.png',
text: '我的', selectedIconPath: 'static/tabbar/exampleHL.png',
}, pagePath: 'pages/demo/index',
] text: '示例',
: [ },
{ {
iconPath: 'static/tabbar/home.png', iconPath: 'static/tabbar/personal.png',
selectedIconPath: 'static/tabbar/homeHL.png', selectedIconPath: 'static/tabbar/personalHL.png',
pagePath: 'pages/index/index', pagePath: 'pages/my/index',
text: '首页', text: '我的',
}, },
// 生产环境要注释掉demo所以分开来写 ]
{ : [
iconPath: 'static/tabbar/example.png', {
selectedIconPath: 'static/tabbar/exampleHL.png', iconPath: 'static/tabbar/home.png',
pagePath: 'pages/demo/index', selectedIconPath: 'static/tabbar/homeHL.png',
text: '示例', pagePath: 'pages/index/index',
}, text: '首页',
{ },
iconPath: 'static/tabbar/personal.png',
selectedIconPath: 'static/tabbar/personalHL.png', {
pagePath: 'pages/my/index', iconPath: 'static/tabbar/personal.png',
text: '我的', selectedIconPath: 'static/tabbar/personalHL.png',
}, pagePath: 'pages/my/index',
], text: '我的',
},
],
}, },
// 你也可以定义 pages 字段,它具有最高的优先级。 // 你也可以定义 pages 字段,它具有最高的优先级。
pages: [], pages: [],

View File

@ -28,12 +28,6 @@ import { visualizer } from 'rollup-plugin-visualizer'
// 另外小程序有主包2M的限制所以一般图片会放到图片服务器不放本地那这个插件就没用所以在开发h5的时候使用本地图片才用得到既然如此那就不装吧 // 另外小程序有主包2M的限制所以一般图片会放到图片服务器不放本地那这个插件就没用所以在开发h5的时候使用本地图片才用得到既然如此那就不装吧
// import viteImagemin from 'vite-plugin-imagemin' // import viteImagemin from 'vite-plugin-imagemin'
// 微信生产环境、本地真机调试不要demo路由本地开发可以有
// TODO: 下面2个根据使用条件选一个即可
export const hideDemoPages = process.env.UNI_PLATFORM === 'mp-weixin'
// export const hideDemoPages =
// process.env.UNI_PLATFORM === 'mp-weixin' && process.env.NODE_ENV === 'production'
// https://vitejs.dev/config/ // https://vitejs.dev/config/
export default ({ command, mode }) => { export default ({ command, mode }) => {
console.log(mode === process.env.NODE_ENV) console.log(mode === process.env.NODE_ENV)
@ -48,7 +42,7 @@ export default ({ command, mode }) => {
// process.cwd(): 获取当前文件的目录跟地址 // process.cwd(): 获取当前文件的目录跟地址
// loadEnv(): 返回当前环境env文件中额外定义的变量 // loadEnv(): 返回当前环境env文件中额外定义的变量
const env = loadEnv(mode, path.resolve(process.cwd(), 'env')) const env = loadEnv(mode, path.resolve(process.cwd(), 'env'))
// console.log(env) console.log(env)
console.log(process.env.UNI_PLATFORM) // 得到 mp-weixin, h5 等 console.log(process.env.UNI_PLATFORM) // 得到 mp-weixin, h5 等
return defineConfig({ return defineConfig({
@ -56,9 +50,10 @@ export default ({ command, mode }) => {
plugins: [ plugins: [
UniPages({ UniPages({
// TODO: 生产环境小程序要过滤掉demodemo里面很多图片超过2M的包大小 // TODO: 生产环境小程序要过滤掉demodemo里面很多图片超过2M的包大小
exclude: hideDemoPages exclude:
? ['**/components/**/**.*', '**/demo/**/**.*'] env.VITE_SHOW_DEMO === '1'
: ['**/components/**/**.*'], ? ['**/components/**/**.*']
: ['**/components/**/**.*', '**/demo/**/**.*'],
homePage: 'pages/index/index', homePage: 'pages/index/index',
subPackages: ['src/pages-sub'], subPackages: ['src/pages-sub'],
}), }),