解决vite打包出现 “default“ is not exported by “node_modules/...标题 ...

打印 上一主题 下一主题

主题 793|帖子 793|积分 2379

项目场景:

uniapp+vue3+ts+vite

标题形貌:场景很多,下面只是一种

  1. // codemirror 编辑器的相关资源
  2. import Codemirror from 'codemirror';
  3. error during build:
  4. RollupError: "default" is not exported by "node_modules/vue/dist/vue.runtime.esm-bundler.js", imported by "node_modules/@kangc/v-md-editor/lib/codemirror-editor.js".
  5.     at error (file:///D:...
复制代码


原因分析:

报错意思是导入的js文件没有默认导出,这才是重点

解决方案:

有两种方法

1.修改node_modules下的文件源码,或者你自己当地代码里的js文件源码。在前面加上expoert default


  1. export default (function (global, factory) {
  2.   typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
  3.     typeof define === 'function' && define.amd ? define(factory) :
  4.       (global = global || self, global.CodeMirror = factory());
  5. }(this, (function () {
  6.   'use strict';
复制代码
为这个js文件添加一个默认导出。不太推荐这个方法,固然比力简朴
2.安装@rollup/plugin-commonjs插件,vite-plugin-require-transform插件@rollup/plugin-commonjs可以将commonjs模块转换层es6模块,但只会对require收效,所以必要将导入改为require格式


(1)安装插件
  1. npm i @rollup/plugin-commonjs
  2. npm i vite-plugin-require-transform
复制代码
(2)添加设置
在vite.config.ts设置中添加插件,注意commonjs()必须在上面,否则大概不收效
  1. import { defineConfig } from 'vite';
  2. import vue from '@vitejs/plugin-vue';
  3. import commonjs from '@rollup/plugin-commonjs';//引入commojs
  4. import requireTransform from 'vite-plugin-require-transform';//引入require
  5. export default defineConfig({
  6.   plugins: [
  7.     commonjs() as any,
  8.     //我的入口文件是ts类型,所以下面必须加上.ts$,否则在main.ts无法使用require
  9.     requireTransform({
  10.       fileRegex: /.js$|.vue$|.png$|.ts$|.jpg$/
  11.     }) //配置require
  12.     vue(),
  13.   ],
  14. }
复制代码
(3)将main.ts中的导入改为require
  1. // codemirror 编辑器的相关资源
  2. const Codemirror = require('codemirror');
复制代码



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

小小小幸运

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表