一段时间后,package.json文件已损坏

Aym*_*Kdn 9 json module node.js npm

我使用Windows 10的企业计算机.我有nodejs v6.10.0和npm v3.10.10.这是我第一次在这台计算机上安装nodejs/npm.

当我安装模块(例如,任何类型的模块)时,npm install jsdoc一切正常.我可以打example.js几次电话,一切都好.

但过了一段时间(随机期)我不能再运行我的程序,因为我得到以下错误:

>node example.js
module.js:96
    throw e;
    ^

SyntaxError: Error parsing C:\my_path\node_modules\some_module\package.json: Unexpected token x in JSON at position 0
Run Code Online (Sandbox Code Playgroud)

如果我检查了package.jsonSublimeText 的内容,我得到了:

78c0 b658 72a3 e0f5 7832 e7d4 b5ee dcc8
8f00 9951 3b8a cbd5 db7f 4556 5e8b e88d
087d 9bb8 ff15 9acb 0a09 7aaf afd3 ced2
3aa9 e2c5 7e7b c4a1 7b82 a332 2848 83ed
adca d7e8 3228 5537 64eb 3105 2338 6ae2
[...]
Run Code Online (Sandbox Code Playgroud)

实际上,这个项目的所有package.json文件node_modules都已损坏....对于所有模块!

但是,如果package.json我的项目文件夹中有一个,它不会受到影响,只有node_modules文件夹下的文件夹才会....

要解决此问题,我必须删除node_modules并重新安装我的模块npm install.不是很方便.完成后,我的package.json文件再次正确与预期的内容.

我认为它可能与我们的迈克菲防病毒有关,但为什么它只会影响下面的package.json文件node_modules,而不影响其他文件夹中的文件?

我在某处读到公司代理可以package.json使用错误的编码下载,但是当我安装我的模块时,这package.json是完全正常的.

所以,如果有人有任何想法/领导,我将不胜感激!

编辑:自上次发布npm(5.x)以来,腐败已经停止发生......我不知道它是否与它有关,或者是否安装了Windows更新,或者我的I/T部门推动了软件更新. ..

Sea*_*ema 2

在这个阶段,如果是我,我会使用 SysInternals Process Monitor:不要具体假设任何内容,只需监视并记录系统上的所有 I/O,直到相关文件开始更改。您可以设置进程监视器来记录磁盘操作,然后过滤日志,直到看到哪个进程实际上正在更改.json名称中的任何内容。可能会有很多日志,您可能需要花一些时间来筛选它们,但它至少应该为您提供一些可查看的内容,以至少回答“什么程序正在更改这些文件?”的问题。而不必猜测。

另一种想法是:如果文件正在更改并且进程监视器根本没有显示任何内容,则您的磁盘可能会损坏。考虑在 USB 驱动器上完成所有工作一段时间,看看是否会出现相同的结果;如果文件在驱动器上损坏C:但在驱动器上没有损坏F:(或其他)上没有损坏,则可能表明您的磁盘开始出现故障。特别是对于 SSD,磁盘在开始失效时可能会做一些奇怪的事情。

跟踪这些类型的随机文件更改可能很困难,但有一些方法可以识别原因;不要放弃希望,你就会找到它。祝你好运!