web-dev-qa-db-ja.com

DeprecationWarning:安全性と使いやすさの問題により、Buffer()は推奨されません。代わりにBuffer.alloc()、...メソッドを使用してください

angularプロジェクトがあり、最近、次のコマンドを使用してangular-universalを追加しました。

_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が残っています

8
Khaled Jamal

コードでBuffer()を使用している場合は、次のコードに置き換えます。

_new Buffer(number) // Deprecated 
Buffer.alloc(number) // New
_

または

_new Buffer(string) // Deprecated 
Buffer.from(string) // New
_

あなたがnotを使用している場合は、どこでもBuffer()を使用して、次のことを行う必要があります。

1)すべてのアプリの依存関係を検索します(IDE現在使用中の検索アイコンをクリックし、Buffer()と入力して検索ツールを使用できます)

2)モジュールまたは依存関係でBuffer()を見つけた場合は、上記のように置き換えるだけです。

11

同じ警告が表示されますが、何の影響もないようです。私は検索と置換を行いましたが、何を推測しますか?Buffer()に一致するコード(ソースにもコンパイルされたバンドルにもない)は何もないので、かなり興味があります。私はノードの最新のLTSバージョン(12.14.1)を持っていますが、npmを6.13.6にアップグレードしました。また、本番サーバーまたは開発サーバーにデプロイした場合、クライアントバージョンはその出力を生成しないと言わなければなりません。 iisnode経由のSSRバージョン、それが役立つかどうかはわかりません。

1
Sparker73