@neosjs/cli
Version:
Neos(奈欧斯)是一个帮助开发者快速地创建 Vue3 应用并自动配置项目编译的脚手架
56 lines (52 loc) • 1.6 kB
text/typescript
import { fileURLToPath, URL } from 'node:url'
import type { ConfigEnv, UserConfigExport } from 'vite'
import { defineConfig, loadEnv } from 'vite'
import { wrapperEnv, formatDate } from './build/utils'
import { createViteProxy } from './build/vite/proxy'
import { createVitePlugins } from './build/vite/plugins'
import { cerateViteBuild } from './build/vite/build'
import pkg from './package.json'
const { name, version } = pkg
const __APP_INFO__ = {
pkg: { name, version },
lastBuildTime: formatDate(new Date(), 'YYYY-MM-DD HH:mm:ss'),
};
const BANNER = `
/*!
* ${name}
* Version: ${version}
* ReleaseTime: ${formatDate(new Date(), 'YYYY-MM-DD HH:mm')}
* Copyright ${formatDate(new Date(), 'YYYY')}
*/
`
// https://vitejs.dev/config/
export default ({ command, mode }: ConfigEnv): UserConfigExport => {
const IS_BUILD = command === 'build'
const ENV = Object.assign(loadEnv(mode, process.cwd()))
const viteEnv = wrapperEnv(ENV)
const { VITE_PORT, VITE_PROXY, VITE_APP_URL } = viteEnv
const BUILD_CONFIG = cerateViteBuild(viteEnv, BANNER)
return defineConfig({
plugins: createVitePlugins(viteEnv, IS_BUILD),
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url)),
'#': fileURLToPath(new URL('./src/types', import.meta.url))
}
},
css: {},
server: {
host: true,
open: `${VITE_APP_URL}`,
port: VITE_PORT,
proxy: createViteProxy(VITE_PROXY)
},
build: {
...BUILD_CONFIG,
minify: 'terser'
},
define: {
__APP_INFO__: JSON.stringify(__APP_INFO__),
},
})
}