【发布时间】:2021-09-29 12:04:33
【问题描述】:
我有一个使用常规 JS 的节点 Web 应用项目。
我正在尝试使用jsconfig.json 设置一些路径。我尝试使用节点默认的Subpath imports,即使它确实有效,vscode intellisense 也停止了工作。
我发现你可以使用jsconfig.json 所以我设置了这个文件
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"baseUrl": "./",
"paths": {
"@controllers/*": ["node/controllers/*"],
},
},
"exclude": ["node_modules"]
}
我在package.json 上添加了
"type": "module",
我的文件夹结构是
├── node
│ └──controllers
│ └── foo.js
├── server.js
├── jsconfig.json
└── package.json
但是当我尝试从server.js导入时
import { foo } from '@controllers/foo.js'
// or import { foo } from '@controllers/foo'
foo.js
export const foo = 'Hello server'
我明白了
node:internal/process/esm_loader:74
internalBinding('errors').triggerUncaughtException(
Error [ERR_MODULE_NOT_FOUND]: Cannot find package '@controllers/foo.js' imported from /Users/Alvaro/Sites/test/server.js
at new NodeError (node:internal/errors:363:5)
at packageResolve (node:internal/modules/esm/resolve:698:9)
at moduleResolve (node:internal/modules/esm/resolve:739:18)
at Loader.defaultResolve [as _resolve] (node:internal/modules/esm/resolve:853:11)
at Loader.resolve (node:internal/modules/esm/loader:89:40)
at Loader.getModuleJob (node:internal/modules/esm/loader:242:28)
at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:73:40)
at link (node:internal/modules/esm/module_job:72:36) {
code: 'ERR_MODULE_NOT_FOUND'
【问题讨论】:
-
将
baseUrl:"."更改为baseUrl:"./" -
@SachinAnanthakumar,它没有修复它。
-
你在 foo.js 中添加了
export default吗? -
是的,当然,导出默认......
-
我不知道为什么它不起作用,这是完整的错误堆栈跟踪吗?
标签: javascript node.js visual-studio-code