当我尝试使用npm安装express时,我总是会收到以下错误:
Failed to parse json
No data, empty input at 1:1
File: /root/.npm/inherits/2.0.1/package/package.json
Failed to parse package.json data.
package.json must be actual JSON, not just JavaScript.
This is not a bug in npm.
Tell the package author to fix their package.json file. JSON.parse
我做错了什么?
sudo npm install -g express
OS是Ubuntu 12.04(精确)armhf
答案 0 :(得分:97)
答案 1 :(得分:5)
我遇到了同样的问题,但是" npm cache clean"没有为我解决它。我不得不回到我的package.json并意识到我有逗号它不应该如下所示:
},
"devDependencies": {
"axios": "^0.15.3",
"bootstrap-sass": "^3.3.7",
"cross-env": "^3.2.4",
"jquery": "^3.1.1",
"laravel-mix": "0.*",
"lodash": "^4.17.4",
"vue": "^2.1.10",
}
" vue ..."所以我删除了它,每一次都恢复正常。因此,在运行 npm cache clean
答案 2 :(得分:4)
在Laravel项目中:
答案 3 :(得分:3)
我在运行npm install
时也收到了相同的错误消息,首先运行npm package.json
来检查package.json文件中的错误,如果没有则运行npm cache clean
答案 4 :(得分:3)
大多数情况下,此错误是由于package.json文件中的语法错误引起的。 在我的例子中,package.json中依赖关系对象的开口大括号丢失了: -
代码--------------------------------
{
"name": "psrxjs",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies":
"rxjs": "^5.4.3"
}
}
答案 5 :(得分:0)
npm ERR! code EJSONPARSE
npm ERR! JSON.parse Failed to parse json
npm ERR! JSON.parse Unexpected token } in JSON at position 550 while parsing near '...eact": "^7.12.4",
npm ERR! JSON.parse },
npm ERR! JSON.parse "dependencies":...'
npm ERR! JSON.parse Failed to parse package.json data.
npm ERR! JSON.parse package.json must be actual JSON, not just JavaScript.
您需要确保您的package.json
是有效的json,而不是JavaScript。
答案 6 :(得分:0)
不执行 npm init
可能会导致此错误。
答案 7 :(得分:0)
对我来说,此问题已通过更改软件包名称来解决 来自
"name": "portfolio"
到
"name": "portfolio2"
答案 8 :(得分:0)
1。基本上是由于逗号的错误放置而引起的,因此请删除错误位置的逗号(在关闭package.json中的花括号('}')之前,将逗号(,)放置会发生esp错误,因此请调查一下。解决方案
sudo npm缓存清理
sudo chown -R 1000:1000“ ... path / .npm”
答案 9 :(得分:0)
删除任何不必要的注释,您引用的错误通常是由于语法错误而发生。或者,如果这样做没有帮助,请尝试通过“ npm cache clean”清理缓存。
答案 10 :(得分:0)
对于像我这样的新手,我忘记了使用npm init命令初始化JSON包。
答案 11 :(得分:0)
我通过以下步骤解决了该问题:
删除node_modules
文件夹
删除package-lock.json
文件
运行npm install
运行npm start
答案 12 :(得分:0)
我认为您可能在 package.json 中做了一些更改,但这是无效的
npm init
npm install express
答案 13 :(得分:0)
请检查package.json文件中是否有未使用的空格,这可能是由多余的空格引起的。
答案 14 :(得分:0)
在习惯使用NPM之前,我曾多次遇到此问题。大部分时间是因为在npm install之前我无法使用npm init
答案 15 :(得分:0)
以下bash脚本会自动修复问题
#!/usr/bin/env bash
echo -e '#!/usr/bin/env bash' > npm_install.sh
cat npm-debug.log | grep 'error File:' | sed -n 's:.*error File\: \(.*\):echo "Removing \1"\nrm -f \1\necho "Cleaning npm cache"\nnpm cache clean\necho "Reinstalling npm"\nnpm install\n./npm_reinstall.sh:p' >> npm_install.sh
chmod +x npm_install.sh
./npm_install.sh
应该保存到npm_reinstall.sh 并使用
授予执行权限chmod +x npm_reinstall.sh
该脚本正在执行以下任务:
有关npm install的更多信息,请访问this
答案 16 :(得分:0)
就我而言
Missing a comma somewhere in a package.json
检查package.json文件。
之后sudo npm install
或强>
清理缓存。
sudo npm cache clean
答案 17 :(得分:0)
我在Windows 10上更新Node后遇到了类似的问题。我的本地构建任务开始失败,经过调查我在依赖包package.json文件中看到了所有这些错误。它们都不再是有效的JSON,我看到的消息如下:
npm WARN Failed to parse json
npm WARN Unexpected token '\u0019' at 1:1
npm WARN ������2�����bE�;���1L �\5�e���k2?��,?;��쏏a��(T��w��+I��/�6�P} ��i�|e�
npm WARN ^
在我的控制台中。
这个故事有一个圆满的结局,因为事实证明新节点与旧的NPM并不好玩,并且将NPM更新到版本5解决了这个问题。希望这有助于其他可能在这个问题上遇到这种变化的人。
答案 18 :(得分:-1)
尝试打开你的txt编辑器并选择"纯文本"为package.json然后重新保存。有时问题被忽视了,简单的事情就是答案。
答案 19 :(得分:-1)
不要忘记编辑package.json,特别是依赖项。
例如,我的一个聊天室项目需要package.json中的以下内容:
{
"name":"chatrooms",
"version":"0.0.1",
"description":"Minimalist multi-room chat server",
"dependencies":{
"socket.io":"~0.9.6",
"mime":"~1.2.7"
}
}