我有一个角度项目,最近我使用以下命令向其中添加了角度通用:
ng add @nguniversal/express-engine --clientProject {{ name of your project }}
构建并运行它:
npm run build:ssr && npm run serve:ssr
这样做之后出现了很多错误,但是我设法使其正常工作,但是当我访问主页时,将以下内容写入控制台:
(node:44714) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
ERROR [Error]
ERROR [Error]
,并且每次刷新页面时,它都会再次打印ERROR [Error]
而没有任何详细信息,请注意,我的代码中没有new Buffer()
,并且我遵循了有关堆栈溢出的建议,解决这个问题但没有运气,有人可以帮忙弄清楚是什么原因吗?
我已经通过删除TranslateService解决了ERROR [Error]
,但仍然存在deprecationWarning
答案 0 :(得分:2)
我收到同样的警告,它似乎丝毫不影响任何东西。 我做了查找和替换,但是猜猜是什么,我的代码(无论在源代码中还是在编译的包中)都没有与Buffer()匹配的东西,所以我对此很好奇。 我拥有节点的最新LTS版本(12.14.1),但我已将npm升级到6.13.6 我还要说的是,如果将客户端版本部署到我的生产或开发服务器上,则不会生成该输出,它只会在通过iisnode提供SSR版本时发生,我不知道这是否有帮助。
答案 1 :(得分:0)
如果您在代码中使用Buffer()
,只需将其替换为:
new Buffer(number) // Deprecated
Buffer.alloc(number) // New
或
new Buffer(string) // Deprecated
Buffer.from(string) // New
如果您不在任何地方使用Buffer()
,则必须执行以下操作:
1)搜索所有应用程序依赖项(您可以使用一种搜索工具,方法是单击您当前使用的IDE中的搜索图标,然后键入Buffer()
)
2)只要您在模块或依赖项中找到Buffer()
的地方,就如上所述将其替换