繁体   English   中英

我该如何解决 --> File 是一个 CommonJS 模块; 它可以转换为 ES6 模块

[英]how can i fix --> File is a CommonJS module; it may be converted to an ES6 module

我盯着 vs 代码编辑器上的 java 脚本编码,当我尝试将外部模块包含到我的项目中时,代码编辑器建议这样做-->(文件是 CommonJS 模块;它可能会转换为 ES6 模块。)有没有办法用推荐线解决这个问题? 我的代码

目前nodejs内部唯一稳定支持的模块系统是commonjs,它是基于require function和module全局object的模块系统。

对 es6 模块系统的支持被认为是 node 的一个不稳定特性,这基本上意味着社区可以决定通过引入破坏性更改来改变它,而无需尊重语义版本控制。

因此,在为 nodejs 选择模块系统时,您基本上有 3 个选择:

  • 坚持使用 commonjs 模块,等待 es6 模块支持成为稳定的特性
  • 将当前支持的不稳定 api 用于 es6 模块
  • 在您的代码中使用 es6 模块,然后使用 babel 转译回 commonjs 模块,以便节点可以仅使用稳定的 API 运行转译后的代码

在我看来,最简单最有效的选择就是坚持使用commonjs,等待es6模块支持成为稳定的api。 此时,您可以安全地切换到 es6 模块。 我会通过设置 babel 和将 es6 模块转换为 commonjs 模块的构建过程来避免增加复杂性。

这意味着,现在,您可以放心地忽略 VS 代码中的警告。 VS 代码提示您切换到 es6 模块,因为它们被设计为 javascript 的通用模块系统,但正如您想象的那样,采用过程需要时间才能完成。

实际上还有第四种选择,但它需要您采用 typescript(顺便说一下,这是中大型项目的不错选择):使用 typescript 编写源代码,然后让 Z1E35BCBA2DBA1089C7BD0805D457 编译器返回到节点- 兼容 javascript 代码。

Typescript 使用开箱即用的 es6 模块系统,因此通过采用 typescript,您将从一开始就使用 es6 模块系统。

您可以通过在 vscode 设置中添加"javascript.suggestionActions.enabled": false来禁用它们。

这些是建议/提示。 它们直观地表明 vscode 可以执行可能重构/改进代码的操作,但它们不被视为错误。 您可以通过在用户设置中添加 "javascript.suggestionActions.enabled": false 来禁用它们

来自 vscode 官方仓库 - https://github.com/microsoft/vscode/issues/47299#issuecomment-379335075

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM