javascript - VS Code 在执行自动导入后不包含 .js

标签 javascript node.js visual-studio-code

在 VS Code 中使用 NodeJS 时,我遇到了以下问题:VS Code 的自动导入功能不包含 Node 模块系统所需的 .js 扩展名。

例如:

// As required by Node
import { foo } from './foo.js'

// As added by VS Code
import { foo } from './foo'

当按照 VS Code 的指定保留时,我收到以下错误:

node:internal/process/esm_loader:91
    internalBinding('errors').triggerUncaughtException(
                              ^

Error [ERR_MODULE_NOT_FOUND]: Cannot find module '\mbot\util\strings' imported from \mbot\index.js
Did you mean to import ../util/strings.js?
    at new NodeError (node:internal/errors:372:5)
    at finalizeResolution (node:internal/modules/esm/resolve:405:11)
    at moduleResolve (node:internal/modules/esm/resolve:966:10)
    at defaultResolve (node:internal/modules/esm/resolve:1176:11)
    at ESMLoader.resolve (node:internal/modules/esm/loader:605:30)
    at ESMLoader.getModuleJob (node:internal/modules/esm/loader:318:18)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:80:40)
    at link (node:internal/modules/esm/module_job:78:36) {
  code: 'ERR_MODULE_NOT_FOUND'
}

最佳答案

可以通过将 jsconfig.json 文件添加到项目根目录来解决此问题。具体来说,通过至少包含以下内容,我的项目开始根据 NodeJS 的要求自动导入 .js 文件扩展名。

jsconfig.json

{
  "compilerOptions": {
    "moduleResolution": "nodenext", // <- Necessary to get imports with .js
  },
  "exclude": ["node_modules"]
}

注意: VS Code 会提示 nodenext 值需要特殊的包,但没有它也能正常工作。

关于javascript - VS Code 在执行自动导入后不包含 .js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73170227/

相关文章:

javascript - 当我添加更多问题(JS)时,测验消失了,怎么办?

regex - 空白字符正则表达式 chrome/nodejs

node.js - 如何调试 "warning: Recursive process.nextTick detected. This will break in the next version of node."

Python:无法使用 vs code 进行调试

visual-studio-code - VSCode 未默认为\n 行尾

python - Visual Studio代码-禁用jupyter

javascript - react mobx - 存储返回代理对象

javascript - jQuery仅在已选择时删除突出显示

javascript - 切换到不同的加密库

node.js - 在 Ubuntu 16.10 上安装 nodejs 的问题