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が残っています
コードでBuffer()
を使用している場合は、次のコードに置き換えます。
_new Buffer(number) // Deprecated
Buffer.alloc(number) // New
_
または
_new Buffer(string) // Deprecated
Buffer.from(string) // New
_
あなたがnotを使用している場合は、どこでもBuffer()
を使用して、次のことを行う必要があります。
1)すべてのアプリの依存関係を検索します(IDE現在使用中の検索アイコンをクリックし、Buffer()
と入力して検索ツールを使用できます)
2)モジュールまたは依存関係でBuffer()
を見つけた場合は、上記のように置き換えるだけです。
同じ警告が表示されますが、何の影響もないようです。私は検索と置換を行いましたが、何を推測しますか?Buffer()に一致するコード(ソースにもコンパイルされたバンドルにもない)は何もないので、かなり興味があります。私はノードの最新のLTSバージョン(12.14.1)を持っていますが、npmを6.13.6にアップグレードしました。また、本番サーバーまたは開発サーバーにデプロイした場合、クライアントバージョンはその出力を生成しないと言わなければなりません。 iisnode経由のSSRバージョン、それが役立つかどうかはわかりません。