javascript - 将 npm 模块与 ES6 和 npm/bundlers 的 future 一起使用

标签 javascript ecmascript-6

我使用 ES6 有一段时间了,没有使用 npm 或 node.js 的经验。
我想在使用 ES6 的项目中使用一些 npm 模块。
我尝试关注并收到错误

import {axios} from './axios.js';
请求的模块“./axios.min.js”不提供名为“axios”的导出
我正在尝试使用 https://github.com/axios/axios/blob/master/dist/axios.js
我不想使用 <script src="..."></script>标签实现。我想用 ES6 模块按需加载它。
是否有任何帮助脚本可以使 npm 模块适应 ES6 或任何解决方案?

最佳答案

import {axios} from './axios.js';
将要求 Axios 有一个命名导出,例如
export function axios(...params) { ... }
不过,Axios 确实有一个默认导出,您可以在没有花括号的情况下导入它:
import axios from './axios.js';
要在浏览器中进行导入,您需要使用 type="module" 声明导入脚本:
<script type="module" src="./js/main.js"></script>
编辑:
检查您提供的 URL 似乎 Axios 根本不提供 ECMAScript 模块。只要您使用 webpack 之类的东西来捆绑脚本,导入我描述的方式就可以了。
编辑2:
我刚刚在 Axios 存储库上提交了一个关于该主题的问题:https://github.com/axios/axios/issues/1879
编辑 3(2021 年 4 月):
三年后,即使是 Node.js 也支持 ES 模块,但 Axios 似乎停留在一个看起来不太可能更新的旧代码库上,当您想将 Axios 与 Vue.js 3/Vite 构建堆栈一起使用时,这会导致问题,或者 slim 。
interceptors 可以在 ES6 中重写 20% 的大小但并非所有功能(例如 redaxios 缺失),包括正确导出.

关于javascript - 将 npm 模块与 ES6 和 npm/bundlers 的 future 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54878516/

相关文章:

javascript - AXIOS PUT 请求返回 200 代码但不更新内容?

javascript - 数据表设置默认选项

javascript - 在终端中运行函数时无输出

java - 有没有更好的方法来处理国家及其州/省/地区列表?

javascript - 按下选项卡按钮时如何测试哪个输入具有焦点

javascript - 使用 Rollup.js 导出函数列表 - ECMA6 模块

JavaScript es6从另一个类调用静态函数

javascript - 检查对象数组中是否存在具有特定键值的对象

javascript - 将字符串添加到文本区域元素中的新行

javascript - 如何使用 jQuery 将分钟转换为小时/分钟并将各种时间值加在一起?