web-dev-qa-db-ja.com

npm「jsonの解析に失敗しました」

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です

40
kovogel

Jivings from このコメント に感謝します:

npm cache clean

問題を解決しました。

99
kovogel

私は同じ問題を抱えていましたが、「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 ...」の後に削除したので、すべてが正常に戻りました。 実行する前に最初にpackage.jsonファイルをチェックする価値がありますnpm cache clean

7
adeguk Loggcity

Laravelプロジェクト:

  1. 「node_modules」フォルダーを削除します。
  2. npm cache clean
  3. npm更新
4
B Ii

ほとんどの場合、このエラーは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"
  }
}

3
Ashish Mishra

npm installの実行中にも同じエラーメッセージが表示されます。最初にnpm package.jsonを実行してpackage.jsonファイルのエラーを確認し、そうでない場合はnpm cache cleanを実行します

3
Avijit Majhi

Pank'sanswer に加えて、この種のエラーが発生した場合

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がJavaScriptではなく有効なjsonであることを確認する必要があります。

0
abmap

Package.jsonファイル内の未使用の空白を確認してください。余分な空白が原因である可能性があります。

0
Damon Wu

私の場合、Missing a comma somewhere in a package.json package.jsonファイルを確認してください。その後Sudo npm install

または

キャッシュメモリをクリーニングします。 Sudo npm cache clean

0
Dere Sagar

次の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

スクリプトは次のタスクを実行しています。

  1. エラーファイルを探す:grepを使用してnpm-debug.logで
  2. エラーがある場合にのみsedを使用して修正コマンド3〜5を生成する
  3. 空のファイルの削除rm -f/ 1 =正規表現の最初のグループからのファイルパス。* error File :(。*)
  4. Npmキャッシュのクリーニングnpm cache clean
  5. Npmの再インストールnpm install
  6. エラーが見つからなくなるまで./npm_reinstall.shを再帰的に実行する

Npmインストールの詳細については、 npm-installコマンドドキュメント を参照してください。

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 ^

私のコンソールで。

新しいNodeが古いNPMでニースを再生せず、NPMをバージョン5に更新すると問題が解決したことが判明したため、この話はハッピーエンドです。これが、この問題でこの変動を経験する他の人々を助けることを願っています。

0
cgarvey

NPMの使用に慣れる前に、この問題に何度か直面しました。ほとんどの時間は、npmインストールの前にnpm initを使用できなかったためです

0
dodido