我应该使用ES6传输我的节点js代码吗?
问题描述:
我只使用nodejs作为服务器端微服务,我想使用ES6,我已经读过Babel用于将代码转换为ES5以提供对浏览器的支持。所以我需要知道,如果我不是为客户端编写此代码,我是否仍需要将其编译为在V8引擎上运行它?或者它只是一个额外的层,这将不需要在服务器端?我应该使用ES6传输我的节点js代码吗?
答
如果您的服务器在新版本的Node.js上工作,并且它支持ES6功能,则不需要传输代码。如果代码托管在一个地方,您的代码只能在同一个地方工作。
使用转译器时,当您的代码使用新版本编写时,可能会有使用旧版本Javascript的浏览器的用户。所以浏览器需要从宿主位置获取JS代码并在本地运行,这可能会导致错误。在这种情况下,你需要使用编译器。
答
你需要使用一个transpiler如果你运行时不支持您所使用的语言功能的支持。
最新版本的Node.js有almost complete support for ES6。
如果您使用的功能不受您使用的任何版本的Node.js支持,您将需要使用转译器。
答
我建议直接在最新的nodejs中使用es es/es7。 现在最新的nodejs几乎支持除导入/导出以外的大多数功能。
如果是这样,你可以使用箭头功能,异步等待等,这可以使你的代码更清晰。
没有使用ES7可能是要走的路。如果两个人都能说英语,你为什么会和邻居说西班牙语? –
如果您使用的是ES模块(即ES6),则仍然需要进行转储。另外,你调用'ES6'的东西可能包含由Babel自然转换但不受Node/V8支持的功能。 – estus