npm 说它无效 json 但 jsonlint.com 说它有效

npm says it is not valid json but jsonlint.com says it is valid

所以基本上这是 package.json 的 json 文件,我将 npm install 用于:(如果有人想知道的话,它是 github 上的 angularfire-seed 项目)

 {
  "name": "angularfire-seed",
  "description": "A starter project for Angular + Firebase with AngularFire",
  "version": "1.0.0",
  "homepage": "https://github.com/firebase/angularfire-seed",
  "repository": "https://github.com/angular/angular-seed",
  "private": true,
  "license": "MIT",
  "devDependencies": {
    "karma": "~0.10",
    "protractor": "~0.20.1",
    "http-server": "^0.6.1",
    "bower": "^1.3.1",
    "shelljs": "^0.2.6"
  },
  "scripts": {
    "postinstall": "bower install",
    "prestart": "npm install",
    "start": "http-server -a localhost -p 8000",
    "pretest": "npm install",
    "test": "karma start karma.conf.js",
    "test-single-run": "karma start karma.conf.js  --single-run",
    "preupdate-webdriver": "npm install",
    "update-webdriver": "webdriver-manager update",
    "preprotractor": "npm run update-webdriver",
    "protractor": "protractor e2e-tests/protractor-conf.js",
    "update-index-async": "node -e \"require('shelljs/global'); sed('-i', /\/\/@@NG_LOADER_START@@[\s\S]*\/\/@@NG_LOADER_END@@/, '//@@NG_LOADER_START@@\n' + cat('app/bower_components/angular-loader/angular-loader.min.js') + '\n//@@NG_LOADER_END@@', 'app/index-async.html');\""
  }
}

但我不断收到来自 NPM 的错误消息,它说它 "failed to parse json" 和 "package.json must be actual JSON, not just Javascript"(错误代码 EJSONPARSE)但是 jsonlint.com 说它是有效的 JSON 格式。到底是怎么回事?我该怎么做才能从命令行真正成功 运行 "npm install"。

$ npm install semver
$ node
> var semver = require('semver');
> semver.valid("~0.10"); // returns null
null

据此:https://docs.npmjs.com/files/package.json,您的所有版本号都应符合 node-semver。

Git 允许数字版本号。而 npm 没有。 所以在你的情况下, 依赖版本号需要采用 major.minor.patch in package.json.

格式