request
ベアボーンWebpackプロジェクトにインポートすると、3つの警告メッセージが表示されます。バグを再現するための最小限の例は、GitHubで入手できます(実行npm install
およびnpm start
)。
Critical dependency: the request of a dependency is an expression
この警告を取り除くにはどうすればよいですか?
詳しくは:
Webpackは、require
呼び出しを静的に解決して最小限のバンドルを作成しようとします。でライブラリの使用変数または式が(のような呼び出し必要とする場合require('' + 'nodent')
におけるこれらの行のをajv
)、WebPACKのは、静的にそれらを解決し、パッケージ全体をインポートすることはできません。
私の理論的根拠は、この動的インポートは本番環境では望ましくなく、コードは警告なしに保つのが最善であるということです。つまり、問題を解決するソリューションが必要です。例えば:
- 必要なライブラリをインポートし、警告が発生しないようにwebpackを手動で構成します。
hack.js
何らかの方法でrequire呼び出しをオーバーライドするファイルをプロジェクトに追加します。- ライブラリをアップグレードします。
ajv-5.0.1-beta.3
警告を消音する修正があります。ただし、使用したい場合は、リリースされるまで待ってから、後続のアップデートhar-validator
をrequest
リリースするまで待つ必要があります。har-validator
のベータ版を強制的に使用する方法があれば、それでajv
問題は解決します。 - その他