可以通过npm install -g ...
安装全局包
如果以这种方式安装Typescript类型,它们也可以在全局文件夹中使用,例如Linux系统上的/usr/lib/node_modules
。
使用 tsc 转换打字稿源文件时,会打印出编译错误,并且转换失败。
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
中的设置被忽略,是否有可能使用全局安装的类型包
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
中可用。