vue vite 打包出现default is not exported by 'node_modules' 解决办法

Keva
阅读 2,624

本文主要给大家介绍关于vite打包出现 "default" is not exported by "node_modules/..." 问题解决的相关资料,文中几种处理方式介绍的很详细,需要的朋友参考一下。问题主要是由“type-check”插件检查代码引起的,在网上也查询了一些解决办法,各种尝试,最终解决办法使用本文的方法。

项目技术栈:vue3+ts+vite

项目 npm run dev 运行正常,但是 npm run build 时出现问题,例如:

error during build:
RollupError: "default" is not exported by "node_modules/date-fns/_lib/toInteger/index.js", imported by "node_modules/date-fns-tz/esm/toDate/index.js".

原因分析:vite不支持commonjs语法。

解决办法:需要使用 @rollup/plugin-commonjs 插件,用于将CommonJS模块转换为ES6模块的Rollup插件。

1、安装 @rollup/plugin-commonjs 插件

npm i @rollup/plugin-commonjs

2、在vite.config.ts配置中添加该插件,注意 commonjs() 必须在vue()上面,否则不生效

import vue from '@vitejs/plugin-vue'
import commonjs from '@rollup/plugin-commonjs'

export default defineConfig({

  plugins: [
    commonjs() as any, // 要放在第一行,否则不生效
    vue(),
  ]
})
回到顶部