找不到模块 chai 尽管它存在于节点模块文件夹中

cannot find module chai though it exists in node modules folder

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

 npm install --save-dev chai

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

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');有用!为什么导入不起作用?

您可能在幕后使用类似 Babel 的工具来转换为 ES5。

如果是这种情况,它实际上是在 Node 上执行 require,CommonJS 风格。

如果您像在 CommonJS 中那样在路径后附加 ./,那么您可能会成功。

请试一试,希望这能解决您的问题:

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

我还没有为 chai 安装 typing,也就是说我没有从 DefinitelyTyped 引用 chai,而是将它安装为节点模块。因此我不得不在我的打字稿代码中使用 require 语句来调用它。

 var chai = require('chai');