在 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/