deepseek-1.x-dev/vite.config.js
vite.config.js
const { defineConfig } = require('vite');
const path = require('path');
const fs = require('fs');
const SRC_PATH = './js/ckeditor5_plugins';
// Lấy tất cả thư mục con trong src, mỗi thư mục là một plugin khác nhau
const pluginDirs = fs
.readdirSync(SRC_PATH)
.filter(item => fs.statSync(path.join(SRC_PATH, item)).isDirectory());
module.exports = defineConfig({
build: {
minify: 'terser',
terserOptions: {
format: {
comments: false,
},
},
rollupOptions: {
// Định nghĩa nhiều entry points
input: Object.fromEntries(
pluginDirs.map(dir => [
dir,
path.resolve(__dirname, SRC_PATH, dir, 'src/index.js')
])
),
// Cấu hình output
output: {
dir: path.resolve(__dirname, './js/build'),
entryFileNames: '[name].js',
format: 'umd',
name: 'CKEditor5.[name]',
// Loại bỏ exports: 'default' để cho phép export nhiều thứ
globals: {
'ckeditor5/src': 'CKEditor5.dll',
},
},
// Xử lý external dependencies
external: [/^ckeditor5\//],
},
},
plugins: [
{
name: 'raw-loader',
transform(code, id) {
if (id.endsWith('.svg')) {
return `export default ${JSON.stringify(code)};`;
}
},
},
],
});
