ci-plus
Version:
ci组件库
78 lines (75 loc) • 2.26 kB
text/typescript
/// <reference types="vitest" />
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import dts from 'vite-plugin-dts';
// @ts-ignore
import DefineOptions from 'unplugin-vue-define-options/vite';
export default defineConfig({
test: {
environment: 'happy-dom'
},
build: {
target: 'ESNext',
//压缩
//minify: false,
rollupOptions: {
//忽略不需要打包的文件和组件库
external: ['vue', /\.less/, '@easyest/utils', 'element-plus'],
input: ['index.ts'],
output: [
{
//打包格式
format: 'es',
//打包后文件名
entryFileNames: '[name].mjs',
//让打包目录和我们目录对应
preserveModules: true,
exports: 'named',
//配置打包根目录
dir: '../easyest/es'
},
{
//打包格式
format: 'cjs',
//打包后文件名
entryFileNames: '[name].js',
//让打包目录和我们目录对应
preserveModules: true,
exports: 'named',
//配置打包根目录
dir: '../easyest/lib'
}
]
},
lib: {
entry: './index.ts',
name: 'easyest'
}
},
plugins: [
vue(),
dts({
entryRoot: 'src',
outputDir: ['../easyest/es/src', '../easyest/lib/src'],
//指定使用的tsconfig.json为我们整个项目根目录下,如果不配置,你也可以在components下新建tsconfig.json
tsConfigFilePath: '../../tsconfig.json'
}),
DefineOptions(),
{
name: 'style',
generateBundle(config, bundle) {
//这里可以获取打包后的文件目录以及代码code
const keys = Object.keys(bundle);
for (const key of keys) {
const bundler: any = bundle[key as any];
//rollup内置方法,将所有输出文件code中的.less换成.css,因为我们当时没有打包less文件
this.emitFile({
type: 'asset',
fileName: key, //文件名名不变
source: bundler.code.replace(/\.less/g, '.css')
});
}
}
}
]
});