今天早上我遇到了一个让我发疯的问题。我将解释这个问题,然后我将在下面提供我的答案(以便其他遇到此问题的人可以尽快找到解决方案。)
只需发出以下命令即可轻松复制问题:
tsd query react --action install
mkdir src
echo "import React = require('react');" > src/foo.ts
我还在tsconfig.json
中添加了以下src
文件:
{
"version": "1.6.2",
"compilerOptions": {
"outDir": "./tsdir",
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"isolatedModules": false,
"jsx": "react",
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"declaration": true,
"noImplicitAny": false,
"removeComments": true,
"noLib": false,
"preserveConstEnums": true,
"suppressImplicitAnyIndexErrors": true
},
"files": [
"foo.ts"
]
}
如果我尝试通过在tsc
内运行src
(版本1.6.2)命令来编译它,我得到:
foo.ts(1,24): error TS2307: Cannot find module 'react'.
我觉得令人费解的是,我已经使用react
安装了tsd
绑定,但是当我运行tsc
时,我收到此错误。看起来我已经做好了一切,为什么会出错?
答案 0 :(得分:0)
所以我最终想到的是我需要在typings
列表中明确包含"files"
文件,即
{
"version": "1.6.2",
"compilerOptions": {
...
},
"files": [
"foo.ts",
"../typings/react/react.d.ts"
]
}
换句话说,我必须在typings
中明确地包含"files"
个文件。我真的不知道为什么。我认为tsc
足够聪明,可以自己寻找它们。
如果有一个更好的解决方案,不必在.d.ts
中明确列出所有"files"
文件,我全都是。但我只想指出这至少是一种解决方法。