概要
webpackでwatchやbuildを行った際に下記のようなログが表示されます。
webpackの処理自体は問題なく出来ており、差し迫った問題ないのですが、この問題がどの程度に影響があるかわからないので解決しておきたいと考えています。
WARNING in ./node_modules/express/lib/view.js 81:13-25 Critical dependency: the request of a dependency is an expression @ ./node_modules/express/lib/application.js 22:11-28
試したこと
検索した所、GithubのissueやStackOverflowでいくつかの解決策が提案されていましたが、イマイチ自分の環境でが上手く行きません。
- unclear how to resolve critical dependencies warning for express/lib/view.js
- Webpack and Express - Critical Dependencies Warning
以下、実際に試したことと、上手く行かなかった理由です。
1. webpack configにて、externalsにexpressを指定する。
externals: ['express', ... ]
上手く行かなかった理由:デプロイ先のLambda上で、モジュールが見つからないというエラーになります。
2. webpack-node-externalsを使用する。
javascript
1externals: [nodeExternals()] 2// or 3nodeExternals({ 4 modulesFromFile: { 5 exclude: ['dependencies'], 6 include: ['devDependencies'], 7 }, 8 }),
nodeモジュールを全て外部化してしまうと、他のモジュールも外部化してしまう為、デプロイ先でモジュールが見つからないエラーになってしまいます。
3. 警告を無視する
javascript
1 ignoreWarnings: [ 2 { 3 module: /node_modules\/express\/lib\/view\.js/, 4 message: /the request of a dependency is an expression/, 5 }, 6 ],
実際の所、このWarningがどの程度の問題ないなのかわからないので、警告を表示させない方法もありなのかなと考えています。
考え
実際の所、このWarningがどの程度の問題ないなのかわからないので、警告を表示させない方法もありなのかなと考えています。
expressをLambda Layerで外部化してしまえば、1のexternalsでexpressは動作しますが、このWarningログを隠しているだけに過ぎず、それだったら3の警告を表示させない方法と同じかなと思います。
おかしい所があったらご指摘頂きたいです。

あなたの回答
tips
プレビュー