当前位置: 首页 > news >正文

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

项目场景:

vue3+ts+vite项目打包

问题描述

// codemirror 编辑器的相关资源
import Codemirror from 'codemirror';error during build:
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".at error (file:///D:...

原因分析:

报错意思是导入的js文件没有默认导出

解决方案:

有两种方法

1.修改node_modoules下的文件源码

在前面加上expoert default

export default (function (global, factory) {typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :typeof define === 'function' && define.amd ? define(factory) :(global = global || self, global.CodeMirror = factory());
}(this, (function () {'use strict';

为这个js文件添加一个默认导出
不太推荐这个方法,虽然比较简单

2.安装@rollup/plugin-commonjs插件,vite-plugin-require-transform插件

@rollup/plugin-commonjs可以将commonjs模块转换层es6模块
但只会对require生效
所以需要将导入改为require格式
(1)安装插件

npm i @rollup/plugin-commonjs
npm i vite-plugin-require-transform

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

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import commonjs from '@rollup/plugin-commonjs';//引入commojs
import requireTransform from 'vite-plugin-require-transform';//引入require
export default defineConfig({plugins: [commonjs() as any,//我的入口文件是ts类型,所以下面必须加上.ts$,否则在main.ts无法使用requirerequireTransform({fileRegex: /.js$|.vue$|.png$|.ts$|.jpg$/}) //配置requirevue(),],}

(3)将main.ts中的导入改为require

// codemirror 编辑器的相关资源
const Codemirror = require('codemirror');
http://www.lryc.cn/news/304453.html

相关文章:

  • c语言strtok的使用
  • hash,以及数据结构——map容器
  • AIoT网关 人工智能物联网网关
  • 基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的鸟类识别系统(Python+PySide6界面+训练代码)
  • 核密度分析
  • 先进语言模型带来的变革与潜力
  • 重铸安卓荣光——上传图片组件
  • Bert基础(四)--解码器(上)
  • Visual Studio快捷键记录
  • 分享84个Html个人模板,总有一款适合您
  • vue使用.sync和update实现父组件与子组件数据绑定的案例
  • C语言系列15——C语言的安全性与防御性编程
  • objectMapper、ObjectNode、JsonNode调用接口时进行参数组装
  • 2024开年,手机厂商革了自己的命
  • 【安全】大模型安全综述
  • Stable Diffusion 模型分享:AstrAnime(Astr动画)
  • 【GPTs分享】每日GPTs分享之Canva
  • 【机器学习】数据清洗——基于Pandas库的方法删除重复点
  • 顺序表增删改查(c语言)
  • MyBatis Plus中的动态表名实践
  • JAVA IDEA 项目打包为 jar 包详解
  • 概率基础——几何分布
  • JavaScript的内存管理与垃圾回收
  • Neo4j导入数据之JAVA JDBC
  • LeetCode 2878.获取DataFrame的大小
  • 索引失效的 12 种情况
  • Spring及工厂模式概述
  • 运维SRE-19 网站Web中间件服务-http-nginx
  • C语言—自定义(构造)类型
  • ArcgisForJS如何实现添加含图片样式的点要素?