npm,nodejs,package.json,模块版本不匹配。预计48,得到51

时间:2017-03-09 07:49:24

标签: node.js npm

我在我的节点项目中使用package.json下方和我运行时 npm test,它会给出以下错误

  

模块版本不匹配。预计48,得到51

{
  "name": "f-api",
  "version": "0.0.1",
  "Description": "F",
  "author": "F",
  "private": true,
  "scripts": {
    "start": "node ./bin/www",
    "start_supervise": "supervisor ./bin/www",
    "test": "mocha --recursive --timeout 10000"
  },
  "dependencies": {
    "bcrypt": "=1.0.2",
    "body-parser": "~1.13.2",
    "config": "^1.24.0",
    "cookie-parser": "~1.3.5",
    "debug": "~2.2.0",
    "express": "~4.13.1",
    "jwt-simple": "^0.5.1",
    "moment": "^2.17.1",
    "morgan": "~1.6.1",
    "nodemailer": "=2.7.2",
    "nodemailer-smtp-transport": "^2.7.2",
    "pg-promise": "^3.2.3",
    "sequelize": "^3.29.0",
    "sequelize-cli": "^2.1.0",
    "supervisor": "^0.12.0"
  },
  "devDependencies": {
    "chai": "^3.5.0",
    "chai-http": "^3.0.0",
    "mocha": "^3.2.0",
    "nodemailer-stub": "^1.0.1",
    "should": "^11.1.2",
    "supertest": "^2.0.1"
  }
}

我认为版本有些不兼容,我对node, npm^, ~, =

等版本语法不熟悉

我将以下内容放入gitlab runner,docker executor

Running with gitlab-ci-multi-runner 1.11.1 (a67a225)
  on gitlab-runner-b-ubuntuvm (1ffe18b1)
Using Docker executor with image node:6.10.0 ...
Starting service postgres:latest ...
Pulling docker image postgres:latest ...
Waiting for services to be up and running...
Pulling docker image node:6.10.0 ...
Running on runner-1ffe18b1-project-6-concurrent-0 via ubuntu...
Cloning repository...
Cloning into '/builds/f/f-api'...
Checking out bcf3e283 as development...
Skipping Git submodules setup
Downloading artifacts for build:linux (495)...
Downloading artifacts from coordinator... ok        id=495 responseStatus=200 OK token=hXK-foh8
Checking cache for test:linux/development...
Successfully extracted cache
$ ./node_modules/.bin/sequelize db:migrate --env=continuous_integration

Sequelize [Node: 6.10.0, CLI: 2.5.1, ORM: 3.30.2]

Loaded configuration file "config_tmp.json".
== 20170120101655-createUserTable: migrating =======
== 20170120101655-createUserTable: migrated (0.031s)
== 20170120111051-addPasswordDigestToUsers: migrating =======
== 20170120111051-addPasswordDigestToUsers: migrated (0.026s)
== 20170226151953-update-users: migrating =======
== 20170226151953-update-users: migrated (0.047s)
== 20170307043733-update-users2: migrating =======
== 20170307043733-update-users2: migrated (0.049s)
== 20170308023252-create-profile: migrating =======
== 20170308023252-create-profile: migrated (0.027s)
== 20170308055218-update-users3-link-profile: migrating =======
== 20170308055218-update-users3-link-profile: migrated (0.017s)
$ npm test
npm info it worked if it ends with ok
npm info using npm@3.10.10
npm info using node@v6.10.0
npm info lifecycle f-api@0.0.1~pretest: f-api@0.0.1
npm info lifecycle f-api@0.0.1~test: f-api@0.0.1

> f-api@0.0.1 test /builds/f/f-api
> mocha --recursive --timeout 10000

module.js:597
  return process.dlopen(module, path._makeLong(filename));
                 ^

Error: Module version mismatch. Expected 48, got 51.
    at Error (native)
    at Object.Module._extensions..node (module.js:597:18)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/builds/focus/focus-api/node_modules/bcrypt/bcrypt.js:6:16)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/builds/focus/focus-api/app/helpers/auth_helper.js:1:78)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/builds/focus/focus-api/config/routes/users.js:4:21)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/builds/focus/focus-api/config/routes/index.js:4:15)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/builds/focus/focus-api/app.js:8:16)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/builds/focus/focus-api/test/integration/routes_auth_test.js:1:75)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at /builds/focus/focus-api/node_modules/mocha/lib/mocha.js:222:27
    at Array.forEach (native)
    at Mocha.loadFiles (/builds/focus/focus-api/node_modules/mocha/lib/mocha.js:219:14)
    at Mocha.run (/builds/focus/focus-api/node_modules/mocha/lib/mocha.js:487:10)
    at Object.<anonymous> (/builds/focus/focus-api/node_modules/mocha/bin/_mocha:459:18)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.runMain (module.js:604:10)
    at run (bootstrap_node.js:394:7)
    at startup (bootstrap_node.js:149:9)
    at bootstrap_node.js:509:3
npm info lifecycle focus-api@0.0.1~test: Failed to exec test script
npm ERR! Test failed.  See above for more details.
ERROR: Job failed: exit code 1

欣赏任何指向正确方向的指针,谢谢你的帮助!!!

2 个答案:

答案 0 :(得分:2)

您如何运行该过程?

如果它可以帮助任何人,我们在通过pm2运行节点时也会遇到类似的问题,那么我们会收到此错误:错误:模块版本不匹配。预期为48,得到57

似乎数字是指NODE MODULE版本,48是节点6,57是节点8。

我们正在运行pm2进程,并且每个进程都指定要使用的特定节点版本。它们指向节点6版本,甚至认为我们当前的nvm使用版本为8.12。 (node.js版本8.12.0)

删除并重新启动PM2作业,创建了具有指向节点8.12的更新链接的任务,我们不再遇到该错误。

希望它对某人有帮助!

答案 1 :(得分:0)

我刚刚修复了版本,因此npm不会更新软件包 在这种情况下,package-lock将有所帮助

相关问题