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

 更新时间:2024年06月04日 09:12:15   作者:狂野小青年  
这篇文章主要给大家介绍了关于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无法使用require
    requireTransform({
      fileRegex: /.js$|.vue$|.png$|.ts$|.jpg$/
    }) //配置require
    vue(),
  ],
 }

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

// codemirror 编辑器的相关资源
const Codemirror = require('codemirror');

总结 

到此这篇关于vite打包出现 "default" is not exported by "node_modules/...问题解决办法的文章就介绍到这了,更多相关vite打包default is not exported by node_modules/...内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解vue cli中如何使用自定义的组件

    详解vue cli中如何使用自定义的组件

    Vue CLI是一个强大的开发工具,可用于快速搭建Vue.js项目,在Vue CLI中使用自定义组件是构建交互式和模块化Web应用的重要一环,下面我们就来看看vue cli中如何使用自定义的组件吧
    2023-11-11
  • Vue3+Element Plus的项目搭建过程详解

    Vue3+Element Plus的项目搭建过程详解

    这篇文章主要为大家介绍了Vue3+Element Plus的项目搭建过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • ElementUI实现el-form表单重置功能按钮

    ElementUI实现el-form表单重置功能按钮

    本文主要介绍了Element使用el-form时,点击重置按钮或者取消按钮时会实现表单重置效果,具有一定的参考价值,感兴趣的可以了解一下
    2021-07-07
  • 详解element-ui表格的合并行和列(非常细节)

    详解element-ui表格的合并行和列(非常细节)

    最近在需求中遇到了elementUI合并行,索性给大家整理下,这篇文章主要给大家介绍了关于element-ui表格的合并行和列的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • Vue项目使用px2rem方法示例详解

    Vue项目使用px2rem方法示例详解

    这篇文章主要为大家介绍了Vue项目使用px2rem的方法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • vue实现评论列表

    vue实现评论列表

    这篇文章主要为大家详细介绍了vue实现评论列表,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • vue实现表格打印功能

    vue实现表格打印功能

    常见的打印有JavaScript打印、jQuery、vue打印,这里主要讲述vue使用vue-print-nb进行打印,废话不多说,直接手摸手上代码,感兴趣的朋友可以参考下
    2024-01-01
  • Vue中获取图片高度的两种方法

    Vue中获取图片高度的两种方法

    在使用Vue2开发移动端页面的时候,需要做一个效果,实现的方案是背景渐变,但是想要实现这个效果就必须进行定位,我的背景高度需要在一个十分恰当的位置,但是我的图片会随着移动端页面的变化而发生高度的变化,为什么会变化?所以本文介绍了Vue中获取图片高度的方法
    2024-08-08
  • vue 自定义icon图标的步骤

    vue 自定义icon图标的步骤

    这篇文章主要介绍了vue 自定义icon的图标的步骤,文中大概给大家分为两步骤,通过实例图文相结合给大家介绍的非常详细,需要的朋友可以参考下
    2021-08-08
  • Vue+Element switch组件的使用示例代码详解

    Vue+Element switch组件的使用示例代码详解

    这篇文章主要介绍了Vue+Element switch组件的使用,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06

最新评论