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)};`;
        }
      },
    },
  ],
});

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc