pacvue-cli
Version:
67 lines (60 loc) • 2.05 kB
text/typescript
import pacvuePlugin from './pacvuePlugin';
import viteSvgIcons from '@pacvue/vite-plugin-svg-icons';
import * as path from 'path'
import { createVuePlugin } from 'vite-plugin-vue2-cust'
// import * as fs from "fs";
import { merge } from 'webpack-merge'
// try{
// fs.statSync(path.resolve(process.cwd(), './vite.config.js'));
// }catch(e) {
// fs.writeFileSync(path.resolve(process.cwd(), './vite.config.js'), `
// import { defineConfig } from 'vite'
// export default defineConfig({
// });`, 'utf8')
// }
function metaReplace() {
return {
name: 'metaReplace',
enforce: 'pre',
transform: function (code) {
code = code.replace(/process.env.VUE_/g, 'import.meta.env.VITE_')
code = code.replace(/process.env\./g, 'import.meta.env.')
code = code.replace(/\/deep\//g, '.deepCustomSass')
return code
}
}
}
export default function exportDefaultConfig(config: any) {
const configResult = merge({
base: '/',
css: {
preprocessorOptions: {
scss: {
additionalData: `@import "@/define.scss";`
}
}
},
resolve: {
alias: {
'~@/pacvue': path.resolve(process.cwd(), './node_modules/@pacvue/frame-vue/src/pacvue'),
'~': path.resolve(process.cwd(), './node_modules'),
'~@pacvue/element-ui': path.resolve(process.cwd(), './node_modules/@pacvue/element-ui'),
'@': path.resolve(process.cwd(), './src'),
'../node_modules': path.resolve(process.cwd(), './node_modules'),
},
extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json']
},
plugins: [
viteSvgIcons({
// Specify the icon folder to be cached
iconDirs: config?.svg?.iconDirs ? config.svg.iconDirs : [path.resolve(process.cwd(), 'src/assets/icons/svg')],
// Specify symbolId format
symbolId: config?.svg?.symbolId ? config.svg.symbolId : '[name]',
}),
metaReplace(),
pacvuePlugin(),
createVuePlugin({ jsx: true }),
],
}, config)
return configResult;
}