如何让 VS Code 智能感知在多个 node_modules 文件夹中搜索打字稿
Posted
技术标签:
【中文标题】如何让 VS Code 智能感知在多个 node_modules 文件夹中搜索打字稿【英文标题】:How to get VS Code intellisense to search multiple node_modules folders for typescript 【发布时间】:2016-07-27 06:06:10 【问题描述】:我有一个结构如下的节点/打字稿项目:
- node_modules // => these are loaded npm/package.json
- src
- node_modules // => shared modules for my project, not on npm
- lib.ts
- app.ts
- package.json
我的私有包有一个辅助node_modules
文件夹,主要是这样我可以从项目中的任何地方导入它们,而不必担心导入时的相对路径(如suggested here)。
这很好用,因为我可以 import * as lib from 'lib'
代替 import * as lib from '../../lib'
或 var lib = require('../../lib')
。
Typescript 编译/加载 lib
没有问题,但 VS Code intellisense 抱怨它“找不到模块 'lib'”。
FWIW,这是我的 tsconfig.json
"compilerOptions":
"experimentalDecorators": false,
"emitDecoratorMetadata": false,
"module": "commonjs",
"target": "es2015",
"rootDir": "src"
【问题讨论】:
我怀疑这是因为我的共享/私有模块没有类型定义......但这些模块也是用打字稿编写的。lib
模块 package.json
中是否有任何属性可以用来告诉 vscode/typescript 这是一个打字稿模块?
【参考方案1】:
我需要修改 lib
的 package.json
以包含“typings”属性:
"name": "lib",
"version": "0.0.1",
"main": "lib.js",
"typings": "lib"
【讨论】:
以上是关于如何让 VS Code 智能感知在多个 node_modules 文件夹中搜索打字稿的主要内容,如果未能解决你的问题,请参考以下文章
如何在 VS Code 中为模板中的 vue 道具启用 Typescript 打字和智能感知?