在ES6和npm / bundlers的未来中使用npm模块

时间:2018-11-15 10:07:23

标签: javascript npm 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或任何解决方案?

捆绑器的未来

您是否认为考虑到http2,EcmaScript将在不久的将来取代npm模块捆绑软件?对于npm捆绑器,我有点晚了,我不想投资将被ES取代的东西。

1 个答案:

答案 0 :(得分:1)

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