我正在编写一个在Node上运行的新应用程序。代码只能在节点服务器上运行,因此浏览器兼容性不是问题。代码库是用TypeScript编写的。
在我的tsconfig.json
中,我为编译器设置了以下选项:
{
"include": [
"src/**/*"
],
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"sourceMap": true,
"noEmitOnError": true,
"noImplicitAny": true,
"noImplicitReturns": true,
"noImplicitThis": true
}
}
注意我的目标是ES6但导出CommonJS模块!
tsc(版本2.1.4)生成的代码在Node(版本6.9.1)上运行正常,就我测试它而言。此外,咨询node.green表明大多数ES5和ES6功能都是在Node中实现的。
可悲的是,我找不到有关哪些JavaScript版本应与Node一起使用的任何信息或官方建议。据我所知,没有什么能阻止我使用ES6。
我的问题:我能否可靠将生成的ES6代码用于节点?
答案 0 :(得分:1)
所有ES6实现细微差别都可以描述为功能。这是node.green所做的。
除ES6模块外,Node 6+完全(99%兼容性,有一些小差异)支持ES6。
所以不,应该没有意外的问题。但是,如果将特定于ES6的代码转换为ES5,可能会有一些代码,因此ES5目标可能会导致麻烦。
答案 1 :(得分:0)
这就是Node.js网站所说的:
所有ECMAScript 2015(ES6)功能分为三组,用于发货,暂存和进行中的功能:
- V8认为稳定的所有出货功能在Node.js上默认打开,不需要任何类型的运行时标记。
- 分阶段功能是V8团队认为不稳定的几乎完成的功能,需要运行时标志: - 和声。
- 正在进行的功能可以通过各自的和声标志单独激活,但除非出于测试目的,否则强烈建议不要这样做。注意:这些标志由V8公开,可能会在没有任何弃用通知的情况下发生变化。
了解更多here