error code ELOCKVERIFY

文章目录

    • ?问题原型:
    • ?问题背景与分析:
        • ① 问题背景
        • ② 问题分析
    • ?解决方法


?问题原型:

妖孽,现出你的原型:

$ npm install 
npm ERR! code ELOCKVERIFY
npm ERR! Errors were found in your package-lock.json, run  npm install  to fix them.
npm ERR!     Missing: test-api@git+ssh://[email protected]/yardstrong/test-api.git

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\YUAN\AppData\Roaming\npm-cache\_logs\2019-02-12T09_01_08_931Z-debug.log

查看 “2019-02-12T09_01_08_931Z-debug.log” 日志文件

verbose npm-session 7f36f1b9f62333b4
5 verbose stack Error: Errors were found in your package-lock.json, run  npm install  to fix them.
5 verbose stack     Missing: test-api@git+ssh://[email protected]/yardstrong/test-api.git
5 verbose stack     at lockVerify.then (E:\nodejs\node_modules\npm\lib\audit.js:163:19)
6 verbose cwd E:\workspace\wNodejs\app
7 verbose Windows_NT 10.0.17134
8 verbose argv "E:\\nodejs\\node.exe" "E:\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "audit" "fix"
9 verbose node v6.10.1
10 verbose npm  v6.4.1
11 error code ELOCKVERIFY
12 error Errors were found in your package-lock.json, run  npm install  to fix them.
12 error     Missing: test-api@git+ssh://[email protected]/yardstrong/test-api.git
13 verbose exit [ 1, true ]

?问题背景与分析:

① 问题背景

我在项目中引入了自己写的一个module,并将代码存储在自建Git中,
首先通过将模块依赖加入到 package.json :

{
  "dependencies": {
    "test-api": "git+ssh://[email protected]/yardstrong/test-api.git"
  }
}

然后安装 npm install ,之后就报错了

② 问题分析

测试网络和ssh,尝试将其拉取代码

$ git clone ssh://[email protected]/yardstrong/test-api.git

成功了下来,可以排除 网络问题 和 SSH连接问题


之后经过一系列无厘头尝试…最终将问题确定在module项目名称上了,

出错的原因是 “ssh://[email protected]/yardstrong/test-api.git” Git项目里 package.json 中 “name” 属性值不是 “test-api”,然后将其改成 “test-api” 即可


?解决方法

将 “ssh://[email protected]/yardstrong/test-api.git” 中 package.json 文件的 “name” 属性的值改成和

{
  "dependencies": {
    "test-api": "git+ssh://[email protected]/yardstrong/test-api.git"
  }
}

依赖信息中的前边名字( “test-api” )保持一致,这样项目构建完成后会将 “ssh://[email protected]/yardstrong/test-api.git” 项目的代码打包到 node_modules 下的 test-api 文件中,
成为新项目中的一个module。

这个问题在 npm 老版本不会报错,会直接将 “ssh://[email protected]/yardstrong/test-api.git” Git项目(假设其package.json 中name属性值为 AAAAAAAAAA)打包到 node_modules 下的AAAAAAAAAA文件夹中,高版本中这个名称必须和父项目中”dependencies“属性的名称保持一致

你可能感兴趣的:(nodejs)