我正在尝试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.json
和node_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-forge
是apn
的依赖物,需要npm audit fix -- force
npm audit
是一个实用程序,用于读取package.json
并根据安全漏洞数据库检查其依赖关系的版本。当发现某个漏洞时,它会向您提供漏洞的严重性,并提供fix
选项。
修复所做的是升级项目的不安全依赖项。npm audit fix
仅根据SEMVER规则修改不应导致问题的依赖项。
--force
是一个危险的选项,因为它升级依赖关系而不考虑任何规则。例如,这可能导致依赖关系从版本1.2.0
变为版本2.3.0
。这意味着您在项目中使用的函数可能不再存在,或者具有不同的行为,从而有效地破坏了您的应用程序。
解决此问题的一个选项是返回版本控制系统(git、cvs等(并恢复以前的package.json
和package-lock.json
。然后应该删除node_module
和任何npm缓存并运行npm install
。
有关npm audit
的更多信息,请点击此处。