不使用解构输出
import api from '@/api'
console.log(api.login) // function() {}
使用解构输出
import {login} from '@/api'
console.log(login) // vue-router.esm-bundler.js:3302 SyntaxError: The requested module
import request from '../utils/request'
export default {
login(params) { // 登录
return request({
url: '/users/login',
...params
})
}
}
- 现在的情况是,可以导入这个对象,通过对象的使用 login 函数
- 如果在导入的时候进行解构则报错,请问这是什么原因?
- 申明,别名已配置好
这不是 bug。你可以去了解下 CommonJS 和 ESM 的导出有何异同,我们以前写代码的时候,很多时候会混用,反正 Babel 会帮我们转译,然后打包到一起也不需要区分;Vite 需要用到浏览器 ESM,所以要严格遵守 ESM 规范。
关于导出方式,请参考 MDN。