@neosjs/cli
Version:
Neos(奈欧斯)是一个帮助开发者快速地创建 Vue3 应用并自动配置项目编译的脚手架
39 lines (37 loc) • 1.71 kB
text/typescript
import type { PluginOption } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
import VueSetupExtend from 'vite-plugin-vue-setup-extend'
import VitePluginCertificate from 'vite-plugin-mkcert';
import { svgIconsPlugin } from './svgSprite'
<% if(userAnswer.needsUnocss) {%>import { unocssPlugin } from './unocss'<% } %>
<% if(userAnswer.needsAutoImport) {%>import { autoImportPlugin, autoComponentsPlugin } from './autoImport'<% } %>
<% if(userAnswer.needsPwa) {%>import { pwaPlugin } from './pwa'<% } %>
<% if(userAnswer.template === 'h5') {%>import { vConsolePlugin } from './vConsole'<% } %>
<% if(userAnswer.needsMock) {%>import { mockPlugin } from './mock'<% } %>
export const createVitePlugins = (viteEnv: ViteEnv, isBuild: boolean) => {
<% if(userAnswer.needsPwa) {%>const { VITE_USE_PWA, VITE_TITLE } = viteEnv<% } %>
<% if(userAnswer.template === 'h5') {%>const { VITE_ENV } = viteEnv<% } %>
const vitePlugins: (PluginOption | PluginOption[])[] = [
vue({
reactivityTransform: true
}),
vueJsx(),
VitePluginCertificate({
source: 'coding',
}),
svgIconsPlugin(isBuild),
isBuild && VueSetupExtend()
]
<% if(userAnswer.needsUnocss) {%>vitePlugins.push(unocssPlugin())<%}%>
<% if(userAnswer.needsAutoImport) {%>vitePlugins.push(autoImportPlugin())
vitePlugins.push(autoComponentsPlugin())<%}%>
<% if(userAnswer.needsPwa) {%>vitePlugins.push(pwaPlugin(VITE_USE_PWA, VITE_TITLE))<%}%>
<% if(userAnswer.needsMock) {%>vitePlugins.push(mockPlugin(isBuild))<%}%>
<% if(userAnswer.template === 'h5') {%>
if (VITE_ENV !== 'production') {
vitePlugins.push(vConsolePlugin())
}
<% } %>
return vitePlugins
}