打字稿:设置“node_modules”目录路径

Posted

技术标签:

【中文标题】打字稿:设置“node_modules”目录路径【英文标题】:Typescript: set "node_modules" directory path 【发布时间】:2019-06-14 21:54:02 【问题描述】:

如果该目录不在默认解析路径中,我如何为 Typescript 编译器的整个“node_modules”目录(不是单独的模块)设置/配置解析路径?

【问题讨论】:

官方 TypeScript 文档中的“模块解析”可能会有所帮助:typescriptlang.org/docs/handbook/module-resolution.html,尤其是“路径映射”部分(带示例) 我遇到了同样的问题。我正在使用纱线工作区,它将node_modules 放在不同的位置。使用 Lerna 的人也可能有这个问题。 【参考方案1】:

您可以更改 TypeScript 查找 node_modules 文件夹的位置,如下所述:https://www.typescriptlang.org/docs/handbook/module-resolution.html

设置 baseUrl 会通知编译器在哪里可以找到模块。所有模块 具有非相对名称的导入被假定为相对于 基本网址。

将以下内容添加到您的 tsconfig.json 文件中:

"compilerOptions": 
  "baseUrl": "<dir_containing_node_modules>"


遗憾的是,您似乎无法为 node_modules 文件夹指定不同的名称 - 尽管这种情况不太可能发生。如果我错了,请纠正我。

【讨论】:

【参考方案2】:

这是我在根目录中使用 Typescript 解决此问题的方法:

我将 tsconfig.json 设置为:

"compilerOptions": 

   "baseUrl": "./",

   "typeRoots": ["node_modules/@types"],
 

我希望这可以帮助某人补充以前的答案。

【讨论】:

以上是关于打字稿:设置“node_modules”目录路径的主要内容,如果未能解决你的问题,请参考以下文章

如何设置我的VS 2013 TypeScript项目来编译我的打字稿文件但排除我的node_modules?

带有 vscode 的打字稿路径在 ctrl 单击时解析错误

打字稿构建从 node_modules 文件夹中获取错误

打字稿错误:模块'“.../node_modules/rxjs/Rx”'没有导出的成员'SubscriptionLike' [重复]

如何在 ./node_modules/@types 之外使用打字稿定义文件

如何让 VS Code 智能感知在多个 node_modules 文件夹中搜索打字稿