Npm - 位于0的JSON中的意外标记}

时间:2016-06-07 18:00:16

标签: json node.js npm

昨天我使用npm install -g jsdoc安装了JSDoc软件包并且使用得很好。今天当我再次尝试使用它时,我收到以下错误:

module.js:96
    throw e;
    ^

SyntaxError: Error parsing ...npm\node_modules\jsdoc\node_modules\requizzle\package.json: Unexpected token } in JSON at position 0
    at Object.parse (native)
    at readPackage (module.js:92:52)
    at tryPackage (module.js:102:13)
    at Function.Module._findPath (module.js:172:20)
    at Function.Module._resolveFilename (module.js:438:25)
    at Function.Module._load (module.js:388:25)
    at Module.require (module.js:468:17)
    at require (internal/module.js:20:19)

我之前实际上已经多次这样做了,并且对软件包进行了彻底的重新安装修复了它,但我想知道是什么导致了这个错误以及是否有更永久的修复。

当我打开错误中提到的package.json文件时,它看起来像一个带有一堆奇怪符号的二进制文件。

enter image description here

我看到第一个字符是},它解释了错误。事情是我下载的每个软件包的所有package.json文件都是这样的,它第一次工作,所以npm显然可以解析它。

修改

快速说明:我在办公室笔记本电脑上。

好的,所以我清理了node_modules文件夹,并用npm install -g jsdoc重新安装了jsdoc。我检查了package.json文件:它都是纯文本,看起来很棒。

然后我关闭并启动了我的电脑。不仅js​​doc package.json文件被混淆了,所有依赖项的package.json文件也被混淆了!这个小错误是递归的!

为了进一步测试,我获取了json文件,将其复制并重命名为PACKAGE_DUP.json并将其放在原始json文件旁边。我还拿了node_modules文件夹并制作了一份名为NODE_MOD_DUP的副本,再次在原文件旁边。所以现在有4个package.json个文件:

  1. node_modules/package.json
  2. node_modules/PACKAGE_DUP.json
  3. NODE_MOD_DUP/package.json
  4. NODE_MOD_DUP/PACKAGE_DUP.json
  5. 当我重新启动计算机时,受影响的 json文件是package.json文件夹中的node_modules文件(项目编号1)。所以它被某种东西作为目标!

    病毒扫描很干净,模块文件夹和整个系统中的每个其他json文件都完全没有受到损坏。此外,与节点捆绑在一起的模块附带的package.json文件也能正常工作。它只是与npm install一起安装的模块给我一个问题(无论是全局安装还是本地安装)。

0 个答案:

没有答案