NodeJS NPM在使用NPM安装时显示错误

a9wyjsp7  于 2023-03-01  发布在  Node.js
关注(0)|答案(2)|浏览(215)

一个朋友和我分享了他正在为WordPress开发的主题,我克隆了他的回购协议在我的/themes文件夹中,我尝试的第一件事是运行“npm安装”在主题文件夹中,以获得gulp和其他npm很酷的功能。
下面是它返回的内容:

$ npm install
npm ERR! code EINTEGRITY
npm ERR! sha1-fjL3W0e4epHQRhHxvxQQmsAGUdc= integrity checksum failed when using sha1: wanted sha1-fjL3W0e4epHQRhHxvxQQmsAGUdc= but got sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=. (36808 bytes)

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\rinor\AppData\Roaming\npm-cache\_logs\2020-04-04T17_30_54_859Z-debug.log

在尝试全局安装后,它给了我同样的错误,所以我想出了从我的PC上卸载node.js,然后下载并安装LTS版本(12. 16. 1)。重新启动,测试,它似乎工作,因为我试图键入“node -v”&&“npm -v”。但当我返回到我的主题,并前往“npm安装”,它给了我同样的错误。
下面是我的package.json内容

{
  "name": "ruce-theme",
  "version": "1.0.0",
  "description": "A starter theme",
  "scripts": {
    "watch": "gulp watch"
  },
  "dependencies": {
    "bootstrap": "^4.0.0-beta.3",
    "jquery": "^3.2.1",
    "npm": "^6.4.1",
    "slick-carousel": "^1.8.1"
  },
  "devDependencies": {
    "@babel/core": "^7.3.3",
    "@babel/preset-env": "^7.3.1",
    "@babel/preset-react": "^7.0.0",
    "babel-core": "^6.25.0",
    "babel-loader": "^8.0.5",
    "babel-plugin-transform-react-jsx": "^6.24.1",
    "babel-preset-env": "^1.6.0",
    "cross-env": "^5.0.1",
    "css-loader": "^2.1.0",
    "extract-text-webpack-plugin": "^4.0.0-beta.0",
    "file-loader": "^3.0.1",
    "gulp": "^4.0.0",
    "gulp-babel": "^8.0.0-beta.2",
    "gulp-clean-css": "^3.9.1",
    "gulp-clone": "^1.1.4",
    "gulp-concat": "^2.6.1",
    "gulp-cssnano": "^2.1.2",
    "gulp-ignore": "^2.0.2",
    "gulp-imagemin": "^4.0.0",
    "gulp-merge": "^0.1.1",
    "gulp-plumber": "^1.2.0",
    "gulp-rename": "^1.2.2",
    "gulp-rimraf": "^0.2.2",
    "gulp-sass": "^3.1.0",
    "gulp-sequence": "^0.4.6",
    "gulp-sourcemaps": "2.6.2",
    "gulp-uglify": "^3.0.0",
    "gulp-watch": "^4.3.11",
    "node-sass": "^4.11.0",
    "sass-loader": "^7.1.0",
    "style-loader": "^0.23.1",
    "webpack": "^4.29.0",
    "webpack-cli": "^3.2.1"
  },
  "license": "ISC"
}

这些是调试显示的错误

20111 error code EINTEGRITY
20112 error sha1-fjL3W0e4epHQRhHxvxQQmsAGUdc= integrity checksum failed when using sha1: wanted sha1-fjL3W0e4epHQRhHxvxQQmsAGUdc= but got sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=. (36808 bytes)
20113 verbose exit [ 1, true ]
5kgi1eie

5kgi1eie1#

你没有提到你是否有package-lock.json。在某些情况下,以下可能会有所帮助。但首先要确保你了解发生了什么。npm告诉你https://registry.npm.org的校验和与package-lock.json的校验和不匹配。要么是注册表中的校验和发生了变化,要么是...

解决方案考虑输出中的行:

npm ERR!
  sha1-fjL3W0e4epHQRhHxvxQQmsAGUdc=
integrity checksum failed when using sha1: wanted
  sha1-fjL3W0e4epHQRhHxvxQQmsAGUdc=
but got
  sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=
. (36808 bytes)

通过前两个完整性校验和(sha1-...)找到package-lock.json中的包,并将第三个完整性校验和(sha512-...)放入其“integrity”字段。
更多信息请点击此处。

brqmpdu1

brqmpdu12#

我遇到了同样的问题。如果仓库中的npm包用相同的版本更新,校验和会改变,npm会引发错误。为了克服这个问题,我简单地
1.已删除节点模块
1.清除npm缓存
1.已更改软件包的其他有效版本
1.运行npm安装
1.我再次将软件包版本更改为要使用的版本
1.运行npm安装
因此,校验和已更新,并且npm正确安装了所需的包。
但是,最有可能的是,应用3到6将是足够的imho。
Npm会引发错误,因为校验和保存到package-lock.json中,我们无法自定义修改它。

相关问题