获取意外的令牌导出
2022-08-29 23:20:01
我正在尝试在我的项目中运行一些ES6代码,但我收到一个意外的令牌导出错误。
export class MyClass {
constructor() {
console.log("es6");
}
}
我正在尝试在我的项目中运行一些ES6代码,但我收到一个意外的令牌导出错误。
export class MyClass {
constructor() {
console.log("es6");
}
}
2022年更新
您使用的是 ES6 模块语法。
这意味着您的环境(例如节点 v14.13.0 或更高版本)必须支持 ESM(Ecmascript 模块语法)。
自 v14.13.0 起的 NodeJS 支持 EcmaScript 模块语法,但必须通过将属性添加到 启用它。v14.13.0 之前的 NodeJS 版本默认使用 CommonJS 模块语法 (),而不是 ES6 模块语法 ( 关键字)。"type":"module"
package.json
module.exports
export
解决 方案:
package.json
.ts
ts-node
ts-node-dev
babel
commonjs
Javascript Module标准近年来发生了很大变化,所以可能会有点令人困惑。
如果您遇到此错误,也可能与您如何将JavaScript文件包含在html页面中有关。加载模块时,必须显式声明这些文件。下面是一个示例:
//module.js:
function foo(){
return "foo";
}
var bar = "bar";
export { foo, bar };
当您包含如下脚本时:
<script src="module.js"></script>
您将收到以下错误:
未捕获的语法错误:意外的令牌导出
您需要包含 type 属性设置为 “module” 的文件:
<script type="module" src="module.js"></script>
然后它应该按预期工作,并且您已准备好在另一个模块中导入模块:
import { foo, bar } from "./module.js";
console.log( foo() );
console.log( bar );