ino*_*nik 8 javascript typescript es6-modules
我有一个 commonjs 模块,它是由 Typescript 3.3.3 生成的。
是否可以将它与 es6 导入语句一起使用?这是我尝试过的。
生成的模块在文件末尾像这样导出 CountUp:
exports.CountUp = CountUp;
Run Code Online (Sandbox Code Playgroud)
在我的 main.js 中:
import { CountUp } from './js/countUp.js';
Run Code Online (Sandbox Code Playgroud)
在 index.html 中:
<script src="./js/countUp.js"></script>
<script src="./main.js" type="module"></script>
Run Code Online (Sandbox Code Playgroud)
但我得到
countUp.js:13 未捕获的 ReferenceError:在 countUp.js:13 处未定义导出
(注意:countUp.js 现在作为 es6 模块分发)
简短回答:否
使用 es6 时,需要导出 usingexport
而不是exports
. exports
是一个 commonjs 功能,主要用于 node 而不是 web 浏览器。
如果你想用commonjs
你需要使用第三方库像requirejs,但这种用途require()
和不import
和exports
,而不是export
。然后,您将能够使用带有打字稿的导入/导出来编写代码,但它将使用编译require
并requirejs
处理其余部分。
因此,要在浏览器中正确使用它,您可以这样做:
测试.js
export function Test() {
console.log('hello')
}
Run Code Online (Sandbox Code Playgroud)
索引.js
import { Test } from './test.js'
Test()
Run Code Online (Sandbox Code Playgroud)
然后当你在你的 html 中加载文件时,函数 test 将执行。
<script src="index.js" type="module"></script>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3825 次 |
最近记录: |