[已解决]在tsconfig.json中配置target为es6, vscode 不能识别部分包
发布于 6 年前 作者 LazyCushion 4110 次浏览 来自 问答

vscode 不能识别部分包

我是做CocosCreator开发的, NodeJS主要用于写辅助脚本工具, 感觉TypeScript比JavaScript好用, 就用ts-node做ts文件的解释器, 直接跑脚本.

我最近遇到的问题是, 在脚本同目录下, 创建tsconfig.json文件, 把target设置为es6, vscode 就不能识别 commander和chalk包, 但能识别 fs-extra.

用ts-node执行是能正常运行的, 只是vscode不能识别.

把target改为es5, vscode就能识别; 使用es6 是为了不用在每个文件里导入es6-promise, 目前我就是把tsconfig.json删掉来避开这个问题的. 但还是想正面问题, 解决问题.

我把node_modules放在分区根目录, 不用每个项目都 npm install 安装常用包, 我之前怀疑过是这个的问题, 但是在脚本同级目录下 npm 安装包也是出现同样的问题, 看来不是这个原因.

commander 和 chalk 这两个包是有个特殊的地方, 例如chalk包: node_modules/@types/chalk下是没有d.ts文件的, README.md里写到

This is a stub types definition for chalk (https://github.com/chalk/chalk).
chalk provides its own type definitions, so you don't need @types/chalk installed!

d.ts文件被放在了 node_modules\chalk\types目录下.

我感觉是跟这个有关系, 但没有想到如何解决这个问题.

环境信息:

  • 操作系统: windows 10;
  • vscode版本: v1.30.2;
  • node版本: v10.15.0;
  • tsc版本: v3.1.4;
  • ts-node版本: v7.0.1;

希望能在这里找到答案.

4 回复

tsconfig.json 内容?

@waitingsong tsconfig.json 只设置了target:es6

module 和 moduleResolution 设置的啥? 把 moduleResolution 设置为 ‘Node’ 试试

@waitingsong 在tsconfig.json 中 配置"moduleResolution": “node”, vscode 能够识别chalk了, 程序也能正常运行. 我的问题解决了, 非常感谢!~~ 也很感谢这个论坛提供这么好的交流的地方!

回到顶部