@@@@@@
This commit is contained in:
71
library/build/index.ts
Normal file
71
library/build/index.ts
Normal file
@@ -0,0 +1,71 @@
|
||||
import vue from '@vitejs/plugin-vue'
|
||||
import vueJsx from '@vitejs/plugin-vue-jsx'
|
||||
import chokidar from 'chokidar'
|
||||
import dayjs from 'dayjs'
|
||||
import pc from 'picocolors'
|
||||
import type { Plugin } from 'vite'
|
||||
import { createBanner } from './banner/'
|
||||
import { createCompress } from './compress/'
|
||||
import { createHttps } from './https'
|
||||
import { createMock } from './mock/'
|
||||
import { createProgress } from './progress/'
|
||||
import { createPwa } from './pwa/'
|
||||
import { createSvgIcons } from './svgSprite/'
|
||||
import { createUnPlugin } from './unplugin/'
|
||||
import { createVisualizer } from './visualizer/'
|
||||
import { compress, https, localEnabled, port, prodEnabled, pwa, pwaDev, report } from '/@/config/'
|
||||
|
||||
const viteApp = 'VITE_' + 'APP_'
|
||||
const viteUser = 'VITE_' + 'USER_'
|
||||
|
||||
export const createVitePlugin = (env: Record<string, string>) => {
|
||||
const vitePlugins: (Plugin | Plugin[])[] = [vue()]
|
||||
const userName = env[`${viteApp}GITHUB_USER_NAME`]
|
||||
const secretKey = env[`${viteApp}SECRET_KEY`]
|
||||
const nodeEnv = env[`${viteUser}NODE_ENV`]
|
||||
const isEmpty = (value: any) => {
|
||||
return value == undefined || value == '' || value == null
|
||||
}
|
||||
if (isEmpty(userName) || isEmpty(secretKey)) return
|
||||
if (nodeEnv !== 'development' && (isEmpty(userName) || isEmpty(secretKey))) return
|
||||
vitePlugins.push(
|
||||
vueJsx(),
|
||||
createProgress(env),
|
||||
createUnPlugin(env),
|
||||
createMock(localEnabled, prodEnabled),
|
||||
createSvgIcons(),
|
||||
createBanner()
|
||||
)
|
||||
if (compress) vitePlugins.push(createCompress(compress))
|
||||
if (pwa) vitePlugins.push(createPwa(nodeEnv, pwaDev))
|
||||
if (https) vitePlugins.push(createHttps())
|
||||
if (report) vitePlugins.push(createVisualizer())
|
||||
return vitePlugins
|
||||
}
|
||||
|
||||
export const createWatch = (env: Record<string, string>) => {
|
||||
const userName = env[`${viteApp}GITHUB_USER_NAME`]
|
||||
const secretKey = env[`${viteApp}SECRET_KEY`]
|
||||
const nodeEnv = env[`${viteUser}NODE_ENV`]
|
||||
|
||||
if (nodeEnv === 'production' && (userName === 'test' || secretKey === 'preview')) {
|
||||
console.log(
|
||||
`${pc.red(
|
||||
'key错误'
|
||||
)}`
|
||||
)
|
||||
process.exit()
|
||||
}
|
||||
|
||||
if (nodeEnv === 'development') {
|
||||
chokidar.watch('./src/views').on('change', (path) => {
|
||||
if (path.endsWith('vue')) {
|
||||
console.log(
|
||||
`\n${pc.gray(dayjs().format('HH:mm:ss'))} ${pc.cyan('[Vue Sh' + 'op Vite]')} ${pc.cyan(`http://localhost:${port}/`)} ${pc.green(
|
||||
'update success'
|
||||
)} `
|
||||
)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user