Node.jsの最新バージョンにあるNodemonの最新バージョンでは、起動時に非推奨の警告がログに記録されます。
これは、開始スクリプトではなくNodemonに関連しています。これは、 npm start
を直接(Nodemon経由ではなく)実行すると、非推奨の警告がログに記録されないためです。
nodemon -v
:1.18.5node -v
:11.0.0{
"watch": "nodemon",
"start": "node --experimental-modules --no-warnings -r dotenv/config server"
}
npm run watch
md5-5c7f483fc44346d27a37182ef5f13bdb
[DEP0106] DeprecationWarning: crypto.createDecipher is deprecated.
上記で指定したように、NodemonとNode.jsのバージョンを使用します。
該当する場合は、コマンドに--dump
フラグを追加し、機密情報や個人情報やトークンを確実に削除するために、ここに出力を含めてください。
開始スクリプトに--trace-deprecations
を追加しようとしましたが、非推奨の警告が開始スクリプトの前に実行されるNodemonコード(または依存関係)によってトリガーされるため、効果がありません。
裸のindex.jsでnodemonを試してみても、警告は表示されますか?
すなわち。
echo "" > index.js
nodemon index.js
うん:
確かに、私も問題を抱えています。
node index.js
=>警告なし
nodemon index.js
=>警告が表示されました
同じ問題、
nodemon
バージョン:1.18.6
トレースは次のとおりです。
> nodemon index.js
(node:27294) [DEP0106] DeprecationWarning: crypto.createDecipher is deprecated.
at [redacted]/node_modules/flatmap-stream/index.min.js:1:1264
at Object.<anonymous> ([redacted]/node_modules/flatmap-stream/index.min.js:1:1423)
at Module._compile (internal/modules/cjs/loader.js:707:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:718:10)
at Module.load (internal/modules/cjs/loader.js:605:32)
at tryModuleLoad (internal/modules/cjs/loader.js:544:12)
at Function.Module._load (internal/modules/cjs/loader.js:536:3)
at Module.require (internal/modules/cjs/loader.js:643:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object.<anonymous> ([redacted]/node_modules/event-stream/index.js:11:15)
そして、それは完全に一周します...それはある種のインジェクション攻撃であることがわかります。
https://github.com/dominictarr/event-stream/issues/116
関連: https ://github.com/remy/nodemon/issues/1451
nodemonでリリースを取得しようとしていますが、テストに合格していません(統合テストの1つで、バックグラウンドサーバーが実行されたままになっています)。
そうは言っても、nodemonの新規インストールは、 [email protected]
を取り込む必要があります。これがこの警告の原因である場合は、今すぐクリーンにする必要があります。
誰かがテストできますか(そしてnodemon install difに対してnpm ls pstree.remy
で確認できますか)?
この問題は、 pstree.remy
リリースによって解決されました。 感染したパッケージはnodemon
依存関係ツリーから削除されました。 ありがとう!
nodemonでリリースを取得しようとしていますが、テストに合格していません(統合テストの1つで、バックグラウンドサーバーが実行されたままになっています)。
@remyはあなたがテストに失敗したと聞いてうれしいです、物事は間違いなく壊れています。 #1464を参照してください。
@FallingSnowは純粋な好奇心から抜け出しました:スタックトレースから始めて、それがインジェクション攻撃であることをどのようにして見つけましたか? jsファイルとmin.jsファイルの分析を開始しましたか?
トレースは次のとおりです。
`` `js
nodemon index.js
(ノード:27294)[DEP0106]非推奨警告:crypto.createDecipherは非推奨になりました。
[編集済み] /node_modules/flatmap-stream/index.min.js:1:1264
オブジェクトで。([編集済み] /node_modules/flatmap-stream/index.min.js:1:1423)
..。
@piotrturskiスタックトレースがある場合、依存関係は古く、nodemonをアップグレードする必要があります。
@piotrturski難読化されたペイロードのように見える非常に奇妙なコードに遭遇するまで、スタックトレースをたどりました。
そうです、私はjsファイルを分析しました。https://github.com/dominictarr/event-stream/issues/116を参照してください。
最も参考になるコメント
そして、それは完全に一周します...それはある種のインジェクション攻撃であることがわかります。
https://github.com/dominictarr/event-stream/issues/116
関連: https ://github.com/remy/nodemon/issues/1451