繁体   English   中英

在TypeScript中导入节点模块时出错

[英]Error importing node modules in TypeScript

今天早上我有一个问题使我发疯。 我将解释问题,然后在下面提供我的答案(以便其他遇到此问题的人可以早日找到解决方案)。

只需发出以下命令,即可很容易地复制问题:

tsd query react --action install
mkdir src
echo "import React = require('react');" > src/foo.ts

我还在src包含了以下tsconfig.json文件:

{
    "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"
    ]
}

如果我尝试通过简单地在src运行tsc (版本1.6.2)命令来编译它, tsc得到:

foo.ts(1,24): error TS2307: Cannot find module 'react'.

我在这里感到困惑的是我已经用tsd安装了react绑定,但是当我运行tsc ,出现了这个错误。 看来我做对了所有事情,为什么会出错?

所以我最终想通了,是我需要明确列入typings在我的列表文件"files" ,即,

{
    "version": "1.6.2",
    "compilerOptions": {
       ...
    },
    "files": [
        "foo.ts",
        "../typings/react/react.d.ts"
    ]
}

换句话说,我必须包括typings的明确文件"files" 我真的不知道为什么。 我以为tsc很聪明,可以自己去寻找它们。

如果有一个更好的解决方案,而不必在"files"明确列出所有.d.ts文件,那我就.d.ts 但是我只想指出,这至少是一种解决方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM