我有一个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()而不是importexports而不是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/

10-12 03:31