vite 打包 node commonjs 项目

vite.config.js

// pnpm add -D vite-plugin-commonjs

import commonjs from 'vite-plugin-commonjs'
import { resolve } from 'path'

export default {
  plugins: [
    commonjs({
      include: /Json2Interface/,
      extensions: ['.js'], // 需要转换的文件扩展名
      ignoreGlobal: false, // 是否忽略全局变量(例如 Buffer)
      sourceMap: false, // 是否生成源映射
      namedExports: {}, // 命名导出(名称和值)
      ignore: [], // 忽略文件的正则表达式
      transformMixedEsModules: true, // 是否转换混合的 ES 模块
    }),
  ],
  build: {
    target: 'modules',
    minify: true,
    lib: {
      entry: './index.js',
      name: 'Json2Interface',
    },
    rollupOptions: {
      external: ['chalk', 'commander', 'inquirer', 'quicktype-core', 'ora', 'request', 'fs'],
      input: ['./index.js'],
      output: [
        {
          format: 'cjs',
          //不用打包成.mjs
          entryFileNames: '[name].js',
          //让打包目录和我们目录对应
          preserveModules: true,
          //配置打包根目录
          dir: resolve(__dirname, '../../dist/Json2Interface'),
        },
      ],
    },
  },
}

package.json

{
  "scripts": {
    "build:Json2Interface": "pnpm --filter=Json2Interface build"
  }
}
// 使用
const { output } = require('../dist/Json2Interface/index.js')
Copyright © Hazel Wei all rights reserved, powered by Gitbook            该文章修订时间: 2025-06-30 22:12:52

results matching ""

    No results matching ""