vue import外部js和npm包区别在哪里,为什么直接引入npm包可以成功,而把js拿到src下面就报错,如下
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导致报错
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
回答应该是错的 删除会减分 你就忽略吧
刚刚好我也遇到这个问题了,在发布包之前要使用
@babel/plugin-transform-modules-umd
插件进行转码。具体详情可以看这篇文章 https://juejin.im/post/6844903826592366600