gpt4 book ai didi

typescript - 如何在 Typescript 中使用全局 Node 包

转载 作者:行者123 更新时间:2023-12-04 12:03:47 25 4
gpt4 key购买 nike

通过 npm install -g ... 安装它们可以使用全局包.
如果以这种方式安装 Typescript 类型,它们在全局文件夹中也是可用的,例如 /usr/lib/node_modules在 linux 系统上。

使用 tsc 转译 typescript 源文件时,会打印出编译器错误并且转译失败。
src/main.ts(3,26): error TS2307: Cannot find module 'express'.

但是,我希望像 NODE_PATH 这样的环境变量或文件 tsconfig.json 中的配置设置喜欢

{
"compilerOptions": {
...
"typeRoots": [
"/usr/lib/node_modules/@types"
]
}
}

可以解决这个问题(另见 Typescript Documentation )。

但是所有这些设置都被忽略了。只有在项目中本地安装类型才有帮助。

所以我的问题是,为什么 tsconfig.json 中的设置是被忽略,是否有可能使用全局安装的类型包

Example project :

npm install你可以用 npm start 运行这个项目如果所有其他依赖项都是全局安装的。仅安装了 7 个软件包:
"devDependencies": {
"@types/express": "^4.0.38",
"@types/node": "^8.0.31",
"@types/sprintf-js": "^1.1.0"
}

如果我删除本地目录 node_modules你得到错误
src/main.ts(2,25): error TS2307: Cannot find module 'sprintf-js'.
src/main.ts(3,26): error TS2307: Cannot find module 'express'.

...虽然这些包在全局包文件夹 /usr/lib/node_modules 中可用.

最佳答案

AFAIK tsc默认情况下不使用节点模块解析,除非您设置 module: "commonjs"在 tsconfig.您是否尝试过设置 moduleResolution: "node"

关于typescript - 如何在 Typescript 中使用全局 Node 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46946205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com