npm审计修复了什么——强制更改,以及如何修复



我正在尝试npm install apn --save并使用npm audit fix --force。"希望你知道你在做什么"的信息让我意识到我不知道自己在做什么。在那之后,我最初得到了

node /home/ec2-user/myapp/bin/www: symbol lookup error: 
/home/ec2-user/myapp/node_modules/bcrypt/lib/binding/napi-v3/bcrypt_lib.node: undefined symbol: napi_add_finalizer

所以我将节点更新为V14.16.0,但这并没有帮助,所以我决定删除package-lock.jsonnode_modules,然后运行npm install。这个错误现在会出现,

PM2 error: Error: spawn node ENOENT
at Process.ChildProcess._handle.onexit (internal/child_process.js:269:19)
at onErrorNT (internal/child_process.js:465:16)
at processTicksAndRejections (internal/process/task_queues.js:80:21)

我意识到PM2没有使用新的节点版本。我升级了PM2,现在它显示我的应用程序是online,而不是errored
但如果在尝试运行我的网站时,我的节点服务器正在运行(端口8080(,我仍然会收到502错误

[proxy_http:error] [pid 22860] (20014)Internal error 
(specific information not available): [client my IP address]
AH01102: error reading status line from remote server 127.0.0.1:8080

如果我停止节点服务器,则会出现503错误。

[proxy:error] [pid 13022] (111)Connection refused:
AH00957: HTTP: attempt to connect to 127.0.0.1:8080 (127.0.0.1) failed

其他人经历过这种情况吗?如有任何帮助,我们将不胜感激。此外,我认为node-forgeapn的依赖物,需要npm audit fix -- force

npm audit是一个实用程序,用于读取package.json并根据安全漏洞数据库检查其依赖关系的版本。当发现某个漏洞时,它会向您提供漏洞的严重性,并提供fix选项。

修复所做的是升级项目的不安全依赖项。npm audit fix仅根据SEMVER规则修改不应导致问题的依赖项。

--force是一个危险的选项,因为它升级依赖关系而不考虑任何规则。例如,这可能导致依赖关系从版本1.2.0变为版本2.3.0。这意味着您在项目中使用的函数可能不再存在,或者具有不同的行为,从而有效地破坏了您的应用程序。

解决此问题的一个选项是返回版本控制系统(git、cvs等(并恢复以前的package.jsonpackage-lock.json。然后应该删除node_module和任何npm缓存并运行npm install

有关npm audit的更多信息,请点击此处。

最新更新