我有一个commonjs模块,它是由Typescript 3.3.3生成的。
是否可以将其与es6 import语句一起使用?这是我尝试过的。
生成的模块在文件末尾导出CountUp,如下所示:
exports.CountUp = CountUp;
在我的main.js中:
import { CountUp } from './js/countUp.js';
并在index.html中:
<script src="./js/countUp.js"></script>
<script src="./main.js" type="module"></script>
但是我明白了
(注意:countUp.js现在作为es6模块分发)
最佳答案
简短答案:否
使用es6时,需要使用export
而不是exports
导出。 exports
是commonjs的主要功能,主要在节点内部使用,而不是在Web浏览器中使用。
如果您想使用commonjs
,则需要使用第三方库(例如requirejs),但这将使用require()
而不是import
和exports
而不是export
。然后,您将能够使用带有typescript的导入/导出来编写代码,但是将使用require
对其进行编译,而requirejs
将处理其余的代码。
因此,要在浏览器中正确使用它,您需要这样做:
test.js
export function Test() {
console.log('hello')
}
index.js
import { Test } from './test.js'
Test()
然后,当您将文件加载到html中时,将执行功能测试。
<script src="index.js" type="module"></script>
关于javascript - es6是否可以导入commonjs模块?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55167994/