@neosjs/cli
Version:
Neos(奈欧斯)是一个帮助开发者快速地创建 Vue3 应用并自动配置项目编译的脚手架
44 lines (42 loc) • 1.33 kB
text/typescript
interface IPreRenderedAsset {
name?: string | any
source?: string | Uint8Array
type?: 'asset'
}
export const cerateViteBuild = (viteEnv: ViteEnv, banner: string) => {
const { VITE_DROP_CONSOLE, VITE_OUT_DIR, VITE_ASSETS_DIR, VITE_SOURCEMAP } = viteEnv
return {
outDir: VITE_OUT_DIR,
assetsDir: VITE_ASSETS_DIR,
cssCodeSplit: true,
sourcemap: VITE_SOURCEMAP,
terserOptions: {
compress: {
drop_console: VITE_DROP_CONSOLE, //打包时删除console
drop_debugger: VITE_DROP_CONSOLE, //打包时删除 debugger
pure_funcs: VITE_DROP_CONSOLE ? ['console.log', 'debugger'] : []
},
output: {
comments: true
}
},
rollupOptions: {
output: {
banner,
chunkFileNames: `${VITE_ASSETS_DIR}/js/[hash].js`,
entryFileNames: `${VITE_ASSETS_DIR}/js/[hash].js`,
// assetFileNames: 'static/[ext]/[hash].[ext]',
assetFileNames: (chunkInfo: IPreRenderedAsset) => {
const { name } = chunkInfo
const fileExt = name.split('.')
return `${VITE_ASSETS_DIR}/${fileExt[1] === 'css' ? 'css' : 'imgs'}/[hash].${fileExt[1]}`
},
manualChunks: {
vue: ['vue', 'vue-router'],
pinia: ['pinia'],
'lodash-es': ['lodash-es']
}
}
}
}
}