为什么摩卡找不到模块?找不到模块"期望.js



我运行mocha test,但得到错误

Error: Cannot find module 'expect.js'

我的包.json

{
"name": "new-restexpress",
"version": "1.0.0",
"description": "",
"main": "index.js",
"directories": {
"test": "test"
},
"scripts": {
"start": "node index.js",
"test": "PORT=3007 ./node_modules/.bin/mocha test -R spec"
},
"author": "Richard Rublev",
"license": "ISC",
"devDependencies": {
"eslint": "^6.8.0",
"eslint-config-prettier": "^6.10.1",
"eslint-plugin-prettier": "^3.1.3",
"expect": "^25.3.0",
"mocha": "^7.1.1",
"prettier": "^2.0.4",
"standard": "^14.3.3",
"superagent": "^5.2.2"
},
"dependencies": {
"body-parser": "^1.19.0",
"express": "^4.17.1",
"mongodb": "^2.2.36",
"mongoskin": "^2.1.0",
"morgan": "^1.10.0"
}
}

我用树状看了看

│   ├── expect
│   │   ├── build
│   │   │   └── ts3.4
│   │   ├── build-es5
│   │   └── node_modules
│   │       ├── ansi-styles
│   │       ├── color-convert
│   │       └── color-name

为什么期望得不到认可?

expectexpect.js是两个不同的包。

第一个已安装,但您正在尝试使用第二个。

如果需要expect.js,只需运行npm install expect.js就可以了。

为了使用expect,你必须安装一个允许你使用它的断言库,直接安装expect对我来说不起作用,我在遇到类似问题时安装了chai。像这样安装:

npm i --save-dev chai

然后以下一种方式导入并像这样使用:

var expect = require('chai').expect;
var numbers = [1, 2, 3, 4, 5];
expect(numbers).to.be.an('array').that.includes(2);

在package.json脚本中:

{
"scripts": {
"test": "mocha"
}
}

最新更新