读取包时出错:graceful-fs\package.json

Posted

技术标签:

【中文标题】读取包时出错:graceful-fs\\package.json【英文标题】:Error reading package: graceful-fs\package.json读取包时出错:graceful-fs\package.json 【发布时间】:2016-01-25 09:20:21 【问题描述】:

我最近安装了 Node.js、npm、ionic 和 cordova,如 Ionic Getting Started 所述

现在,当我打开我的 Visual Studio 项目时,Bower/NPM 窗口显示以下错误:

System.AggregateException:发生一个或多个错误。 ---> Microsoft.NodejsTools.Npm.PackageJsonException:读取错误 package.json 在 'C:\Users\Colin\AppData\Roaming\npm\node_modules\cordova\node_modules\npm\node_modules\graceful-fs\package.json': 读取 package.json 时出错。该文件可能是可解析的 JSON,但可能 包含具有重复属性的对象。

这似乎是由于problem with the npm package。那么我该如何解决这个问题呢?我要安装较早版本的 Node、npm、cordova 还是 graceful-fs?我该怎么做?

编辑 根据 Vikas Vats 的评论,我运行了以下命令:

cordova -v 有人告诉我我的全球版本是 5.3.3

npm uninstall -g cordova

npm install -g cordova@4.3.0

我现在在 graceful-fs\package.json 中报告了相同的错误,但这次它位于不同的位置:

C:\Users\Colin\AppData\Roaming\npm\node_modules\ionic\node_modules\ionic-app-lib\node_modules\ionic-cordova-lib\node_modules\npm\node_modules\graceful-fs\package.json

【问题讨论】:

你的graceful-fs模块有问题。在记事本中打开它的package.json文件,检查这个文件中是否有重复的键。仅重新安装 cordova 包。 @VikasVats 是的,有重复的键,如我链接到的 npm 问题中所列。我尝试重新安装较早版本的 Cordova,现在我遇到了作为 ionic-app-lib 的依赖项安装的优雅 fs/package.json 的问题。 (请参阅我的编辑)我正在考虑安装 npm 的早期版本,然后重新安装每个给我一个错误的软件包,但我是 npm 的初学者,所以不胜感激任何建议 我想你对那个 github 问题有你的答案 现在问题出在 ionic 包上。尝试重新安装它。确保版本相互兼容。 【参考方案1】:

来自https://github.com/npm/npm/issues/9965

在文本编辑器中打开 C:\Users\Colin\AppData\Roaming\npm\node_modules\ionic\node_modules\ionic-app-lib\node_modules\ionic-cordova-lib\node_modules\npm\node_modules\graceful-fs\package.json 并删除重复的根键:

引擎 githead 错误 主页 _id _shasum _来自 _npmVersion _nodeVersion _npmUser 分布 存储库 版本

根键在package.json中只能出现一次

【讨论】:

是的,我曾在那里寻求解决方法。我想这可能会解决它,但是重复的键具有不同的值,所以我担心我会通过删除错误的键来破坏其他东西。相反,我现在已经回滚到以前的版本。【参考方案2】:

我卸载了 cordova - 将其恢复为 Visual Studio 测试过的版本:

npm uninstall -g cordova

npm install -g cordova@4.3.0

这将错误转移到 ionic。于是我把 Ionic 带回了 1.6.5 版本:

npm uninstall -g ionic

npm install -g ionic@1.6.5

这修复了 graceful-fs/package.json 文件。我已经复制了这里的内容:


  "author": 
    "name": "Isaac Z. Schlueter",
    "email": "i@izs.me",
    "url": "http://blog.izs.me"
  ,
  "name": "graceful-fs",
  "description": "A drop-in replacement for fs, making various improvements.",
  "version": "2.0.0",
  "repository": 
    "type": "git",
    "url": "git://github.com/isaacs/node-graceful-fs.git"
  ,
  "main": "graceful-fs.js",
  "engines": 
    "node": ">=0.4.0"
  ,
  "directories": 
    "test": "test"
  ,
  "scripts": 
    "test": "tap test/*.js"
  ,
  "keywords": [
    "fs",
    "module",
    "reading",
    "retry",
    "retries",
    "queue",
    "error",
    "errors",
    "handling",
    "EMFILE",
    "EAGAIN",
    "EINVAL",
    "EPERM",
    "EACCESS"
  ],
  "license": "BSD",
  "readme": "# graceful-fs\n\ngraceful-fs functions as a drop-in replacement for the fs module,\nmaking various improvements.\n\nThe improvements are meant to normalize behavior across different\nplatforms and environments, and to make filesystem access more\nresilient to errors.\n\n## Improvements over fs module\n\ngraceful-fs:\n\n* keeps track of how many file descriptors are open, and by default\n  limits this to 1024. Any further requests to open a file are put in a\n  queue until new slots become available. If 1024 turns out to be too\n  much, it decreases the limit further.\n* fixes `lchmod` for Node versions prior to 0.6.2.\n* implements `fs.lutimes` if possible. Otherwise it becomes a noop.\n* ignores `EINVAL` and `EPERM` errors in `chown`, `fchown` or\n  `lchown` if the user isn't root.\n* makes `lchmod` and `lchown` become noops, if not available.\n* retries reading a file if `read` results in EAGAIN error.\n\nOn Windows, it retries renaming a file for up to one second if `EACCESS`\nor `EPERM` error occurs, likely because antivirus software has locked\nthe directory.\n\n## Configuration\n\nThe maximum number of open file descriptors that graceful-fs manages may\nbe adjusted by setting `fs.MAX_OPEN` to a different number. The default\nis 1024.\n",
  "readmeFilename": "README.md",
  "bugs": 
    "url": "https://github.com/isaacs/node-graceful-fs/issues"
  ,
  "_id": "graceful-fs@2.0.0",
  "_from": "graceful-fs@2"

我还尝试了下一个 Ionic 版本 - 1.7.0 和最新版本 - 1.7.7。问题又来了,所以我现在还是坚持 1.6.5

参考 Ionic releases

【讨论】:

以上是关于读取包时出错:graceful-fs\package.json的主要内容,如果未能解决你的问题,请参考以下文章

读取边带数据包时安装 HomeBrew 意外断开连接时出错

警告:mysql_connect():读取问候包时出错

MySQL服务器已消失,读取问候数据包时出错[重复]

在Google Cloud SQL中读取通信数据包时出错

在 karaf 中启动包时出错:“通过两个依赖链”

尝试安装 imblearn 包时出错