globalDevDependencies无法按预期工作

时间:2017-06-23 23:19:08

标签: typescript mocha chai typescript-typings typescript2.0

我使用的是Typescript 2.4.0并在我的package.json中有以下内容:

"globalDevDependencies": {
  "chai": "^3.5.0",
  "mocha": "^3.4.2",
  "@types/chai": "^3.0.0",
  "@types/mocha": "^2.2.41"
},

然后我有一个测试文件test-spec.ts,其开头为:

const expect = chai.expect;

然而,当我尝试编译它时,它抱怨" chai没有定义"。我期待我的全局deps引用会自动将其引入全局命名空间。我也尝试过更改为globalDependencies部分,但也出现了相同的错误。

也许我不理解这些依赖块提供的内容。

1 个答案:

答案 0 :(得分:0)

AFAIK,npm中没有globalDependenciesglobalDevDependencies

您需要的是使用npm安装打字:

npm install -D @types/chai @types/mocha

有了这个,你应该可以像你的例子一样访问chai.expect

@types/mocha不会在全局命名空间中导出自身。 要解决此问题,您需要执行类似于以下内容的全局扩充:

// custom-typings/mocha.d.ts
import mocha = require('mocha')
declare global {
 type describe = mocha.describe
  ...
}

// tsconfig.json
{
  "include": [
    "custom-typings"
  ]
}

您可能需要稍微处理全局扩充才能使其正确。 我还没有使用过“摩卡咖啡”。已经有一段时间了。 :)

以下是有关全球扩充的信息:

https://www.typescriptlang.org/docs/handbook/declaration-merging.html