vue-cli3直接import umd规范的js报错,而通过npm安装则不会

新手上路,请多包涵

1. 如何复现

用Vue-cli3构建create一个项目,把popper.js放到src目录下,popper.js的规范为umd,代码如下截图

图片描述

然后在App.vue 中引入

import Popper from './popper.js'

图片描述

另一种通过npm包安装时

npm install popper.js --save

然后在App.vue 中引入

import Popper from 'popper.js/dist/umd/popper.js'

这个popper.js文件和上面放在src的js文件是一模一样的,只是位置不同,
但是执行的结果却是不一样的,如下图,能够正常导出
图片描述

这是为什么呢? 同样是import引入,而npm包引入的情况下,this和exports都是空对象{},而直接放到src引入时this和
exports都是undefined导致报错

阅读 13.2k
3 个回答

遇到同问题,参考这篇文章解决的
问题原因可以去原文看下,我贴下解决方法

npm install --save-dev @babel/plugin-transform-modules-umd

babel.config.js

module.exports = {
  presets: [
    '@vue/cli-plugin-babel/preset',
  ],
  plugins: ['@babel/plugin-transform-modules-umd'], //主要是这个
};
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题