【发布时间】:2017-08-05 03:01:48
【问题描述】:
我使用装有 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
如果我用 SublimeText 检查package.json 的内容,我得到:
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
[...]
实际上,这个项目的node_modules 下的所有package.json 文件都已损坏......对于所有模块!
但是,如果我的项目文件夹中有package.json,它不会受到影响,只有node_modules 文件夹下的那些会....
要解决此问题,我必须删除 node_modules 并使用 npm install 重新安装我的模块。不是很方便。
完成后,我的package.json 文件再次全部正确,具有预期的内容。
我认为这可能与我们的 McAfee 防病毒有关,但为什么它只会影响 node_modules 下的 package.json 文件,而不影响其他文件夹中的文件?
我在某处读到公司代理可以下载编码错误的package.json,但是当我安装我的模块时,package.json 完全正常。
因此,如果有人有任何想法/领导,我将不胜感激!
编辑: 自上次发布 npm (5.x) 以来,损坏停止发生……我不知道它是否与它有关,或者可能安装了 Windows 更新,或者我的 I/T 部门推送了软件更新……
【问题讨论】:
-
只是想知道,不同的
package.jsons 是否显示了它们最后一次编辑/更新的“最近”时间?它只发生在您正在从事的项目中吗?还是针对您机器上的所有项目? -
这不会发生在全局包(使用“-g”安装)上,而是发生在本地包上。 Node开发我做的不多,所以就在目前的项目上……