SOS!export 'default' (imported as '相关函数') was not found【已解决】

有一个公司自己写的包, 我现在的情况是,,新建一个vue-cli 项目 可以调用
但是,有一个老的项目,需要用到到,结果 报出 如题的错误。

@ silentdepth
手动@大佬 sos

export default 是默认导出
export 导出 可以用 import {xxx} from 'yyy' 去拿

1 Like

module.exports = {
fun1,
fun2,
fun3,
fun4
}
是用这样的方式 导出的,
import xxx form ‘xxx’
这样导入,,

看看具体报错信息吧:sweat_smile:

没有报错,只有警告信息,进入相关路由,vue钩子函数都不触发,直接没反应了

payment.js 这样导出的吗

export * as co_s from 'xxx'

image
不是

我自己感觉是 环境或者什么配置的原因,,,我新建一个vue-cli 的新项目,通过这样的方式import co_s form ‘payment.js’ 是可以正常运行的

1 Like

require试试

已经尝试过了,,一样的情况

梳理一下,,,payment.js 导出方式:
image

引入方式:
image

错误展示:

那就不清楚了,是不是老项目对模块的处理不同

module.exports属于AMD规范,对应了require(也属于AMD规范)导入。
而import是ES6规范,要批量导出要用export default,而不是module.exports噢
应该是这样吧,参考一下,咱不是大佬:yum:

:grinning:
导出/导入的方式,两个都尝试过了,还是一样的情况,,,:roll_eyes:

噗噗噗噗噗 !!!!!!!
发现问题了!!!
老项目,这样引入不识别ES6语法!
把新的包 转一下就行了!

然后新问题来了,vue-cli 项目 是如何处理 这样的引入方式 识别ES6的呢?

是嘛,哈哈。
你说是识别不了ES6,vue-cli里面是自动配置babel识别ES6,你不是vue-cli搭建的项目吧。
如果是普通项目,最快的ES5转ES6,可以试试babel-cli
:yum:

你这是模块化标准用错了, 你用module.exports 是commonJs规范,然后又用es6的import 方法规范,这个肯定有问题的, 建议都使用 es6的模块化方法, export {}, 这种, 然后引入的时候就用import, 如果使用module.exports 就要使用 require()方法引入包, 两者有一定的区别, 具体你可以看看相关文章

所以到底是怎样解决的? 我这边也有类似的问题 诡异的是有时候dev不提示 有时候dev提示。 而且我引入双方都是es6的 一个是node端 一个是vue 都是使用的ts 我两个项目共用一个数据dto模块