NodeJS NPM安装错误“Unexpected token < in JSON at position 0”

2q5ifsrm  于 2023-08-04  发布在  Node.js
关注(0)|答案(7)|浏览(333)

我正在使用npm install并验证包JSON内容是否有效,我得到以下错误:
在网上阅读后,我做了"rm -f package-lock.json && npm install"(即使我没有看到任何包锁),也做了npm cache clean -f,这没有帮助,也配置了注册表。
参见 Can't install any package with node npm
我用的是最新的npm,6.2.0。
日志中的错误为:

159 silly saveTree ├── express@4.16.3
159 silly saveTree ├── passport-http@0.3.0
159 silly saveTree └── passport@0.3.2
160 verbose stack SyntaxError: Unexpected token < in JSON at position 0 while parsing near '<html>
160 verbose stack <head><title>...'
160 verbose stack     at JSON.parse (<anonymous>)
160 verbose stack     at parseJson (/usr/local/lib/node_modules/npm/node_modules/json-parse-better-errors/index.js:7:17)
160 verbose stack     at consumeBody.call.then.buffer (/usr/local/lib/node_modules/npm/node_modules/node-fetch-npm/src/body.js:96:50)
160 verbose stack     at <anonymous>
160 verbose stack     at process._tickCallback (internal/process/next_tick.js:188:7)

字符串
还有什么我能做的吗

vlurs2pr

vlurs2pr1#

请执行以下操作:
1.删除node_modules文件夹。
1.删除package-lock.json文件。
1.再次运行npm install

iswrvxsc

iswrvxsc2#

您的package.json或其他JSON文件不正确。首先,您必须修复JSON错误。

zhte4eai

zhte4eai3#

这对我很有效:

rm -rf node_modules
rm package-lock.json
npm cache verify
npm install

字符串

5anewei6

5anewei64#

删除节点模块和包锁JSON文件,在许多情况下解决了这个问题。
以下是应遵循的步骤:
1.删除node_modules文件夹。
1.删除package-lock.json文件。
1.验证该高速缓存
1.再次运行npm install
让我们使用rimraf
1.在全球安装rimraf
npm install rimraf -g
1.删除节点模块
rm -射频节点模块
1.删除package-lock.json
rimraf package-lock.json
1.验证缓存
npm缓存验证
1.重新安装模块
npm install

vshtjzan

vshtjzan5#

对于已经删除node_modules并在npm install之后面临错误的人。如果您在package.json下有一个预安装脚本,这也可能是一个问题,如下所示:

"scripts": {
  "preinstall": "npx npm-force-resolutions",
....

字符串
因为npm-force-resolutions查找要解析的node_modules。要修复它,只需注解预安装脚本,运行npm install,然后恢复注解并再次运行npm install以确保验证。

fcipmucu

fcipmucu6#

我在NestJS中得到了同样的错误,我发现错误在nest-cli.json中,而不是在任何其他文件中。

muk1a3rh

muk1a3rh7#

我也遇到了这个问题。
Can't install any package with node npm中的这个解决方案帮助了我。
命令如下:

npm install <packagename> --registry http://registry.npmjs.org/

字符串
但这很痛苦。过了一会儿,我发现我设置了错误的注册表镜像。

  • 首先,我使用下面的命令来找出我的注册表
npm config ls -l

然后我发现值是http://www.npmjs.org/

  • 其次,我使用下面的命令来修复它
npm config set registry https://registry.npmjs.org/

在那之后,我解决了它!

相关问题