@Types模块没有Angular 2



我花了比我要承认的更多时间,所以我把手伸了起来。

我有一个要在我的Angular 2项目中包含的模块:

import * as d3ScaleChromatic from 'd3-scale-chromatic';

这给出了一个错误:

Cannot find module 'd3-scale-chromatic'.

我已经通过NPM npm install --save @types/d3-scale-chromatic安装。我可以说它生活在node_modules/@types/d3-scale-chromatic

我的tsconfig.json看起来像这样:

{
  "compileOnSave": false,
  "compilerOptions": {
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"   <-- should look here, right?
    ],
    "lib": [
      "es2016",
      "dom"
    ]
  }
}

这样我就可以看到它会在node_modules/@types中查看。

似乎与这个问题相似,但据我所知,我已经遵循了线程中的建议:https://github.com/microsoft/typescript/issues/9725。

谁能告诉我我缺少的东西可以在模块中正确引用此软件包?

编辑:仔细检查后,实际上有4个tsconfig。*我的应用中的文件。我怀疑这是问题的根源。现在的问题是,我需要保留哪个?

tsconfig.app.json

{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/app",
    "baseUrl": "./",
    "module": "es2015",
    "types": ["@types/d3-scale-chromatic"]
  },
  "exclude": [
    "test.ts",
    "**/*.spec.ts"
  ]
}

tsconfig.spec.json

{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/spec",
    "baseUrl": "./",
    "module": "commonjs",
    "target": "es5",
    "types": [
      "jasmine",
      "node"
    ]
  },
  "files": [
    "test.ts"
  ],
  "include": [
    "**/*.spec.ts",
    "**/*.d.ts"
  ]
}

tsconfig.e2e.json

{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/e2e",
    "baseUrl": "./",
    "module": "commonjs",
    "target": "es5",
    "types": [
      "jasmine",
      "jasminewd2",
      "node"
    ]
  }
}

您还需要安装:

npm install --save d3-scale-chromatic

以及:

npm install --save @types/d3-scale-chromatic

相关内容

  • 没有找到相关文章

最新更新