虽然它存在于node modules文件夹中但找不到模块chai

时间:2016-07-10 00:14:20

标签: javascript typescript npm chai node-modules

我尝试使用以下命令安装chai。

 npm install --save-dev chai

然后我使用以下导入运行我的单元测试类。

import {assert} from 'chai';
import {expect} from 'chai';

它引发了以下错误。

test\main\MessageBroker.spec.ts(3,22): error TS2307: Cannot find module 'chai'.
[05:38:45] [Typescript] TypeScript error: test\main\MessageBroker.spec.ts(3,22): error TS2307: Cannot find module 'chai'.
test\main\MessageBroker.spec.ts(4,22): error TS2307: Cannot find module 'chai'.
[05:38:45] [Typescript] TypeScript error: test\main\MessageBroker.spec.ts(4,22): error TS2307: Cannot find module 'chai'

我在这里做错了什么?我也可以在node_modules文件夹中看到chai文件夹。

当我说var chai = require(' chai');有用!为什么不导入工作?

2 个答案:

答案 0 :(得分:2)

我没有为chai安装类型,也就是说我没有从DefinitelyTyped引用chai但是已经将它安装为节点模块。因此,我必须在我的打字稿代码中使用require语句来调用它。

 var chai = require('chai');

答案 1 :(得分:0)

你可能会在幕后使用像Babel这样的东西来转换为ES5。

如果是这种情况,它实际上是通过Node,CommonJS样式执行require

这样,如果您只是像在CommonJS中那样使用./附加路径,就可以成功。

请试一试,我希望这可以解决您的问题:

import {assert} from './chai';
import {expect} from './chai';