npm 无法找到模块chai,尽管它存在于节点模块文件夹中

42fyovps  于 2023-08-06  发布在  其他
关注(0)|答案(3)|浏览(182)

我尝试使用以下命令安装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');为什么导入不工作?

yrdbyhpb

yrdbyhpb1#

我没有安装chai的类型,也就是说我没有从DefinitelyTyped引用chai,而是将其安装为节点模块。因此,我不得不在我的类型脚本代码中使用require语句来调用它。

var chai = require('chai');

字符串

e4yzc0pl

e4yzc0pl2#

你可能在幕后使用了类似Babel的东西来转译到ES5。
如果是这样的话,它实际上是在Node上执行require,CommonJS风格。
如果你只是像CommonJS一样在路径后面加上./,你就可以成功了。
请给予一下,我希望这能解决你的问题:

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

字符串

qvk1mo1f

qvk1mo1f3#

这个错误实际上可以通过安装类型来解决。这很奇怪,但它对我很有效。给予看:

npm i --save-dev @types/chai

字符串

相关问题