web-dev-qa-db-ja.com

WebpackおよびExpress-重要な依存関係の警告

次のwebpack.config.tsがあります。

var webpack = require( 'webpack' );
var path = require( 'path' );

module.exports = {

  entry: [
    './api/bin/www.ts'
  ],
  output: {
    path: path.resolve( __dirname, './dist/api' ),
    filename: 'index.js'
  },
  module: {
    loaders: [
      { test: /\.ts$/, loader: 'awesome-TypeScript-loader' },
      { test: /\.json$/, loader: 'json-loader' }
    ]
  },
  resolve: {
    extensions: [ '', '.js', '.ts' ]
  },
  target: 'node',
  node: {
    console: true,
    fs: 'empty',
    net: 'empty',
    tls: 'empty'
  }
};

Webpackを実行すると、依存関係に関する警告が表示されます。

WARNING in ./~/express/lib/view.js
Critical dependencies:
78:29-56 the request of a dependency is an expression
@ ./~/express/lib/view.js 78:29-56

これで開始するエクスプレスサーバーはHello Worldの例と必要な機能にすぎませんが、この警告が心配です。

私のgooglefuは、まずまずの解決策を明らかにしていません。私はこの問題の特定のインスタンスを見てきましたが、解決策は警告を表示しないことでバイパスすることでした。

21
Aleski

Webpack-node-externalsを使用します。

const nodeExternals = require('webpack-node-externals');

{
  target: 'node',
  externals: [nodeExternals()],
}

https://www.npmjs.com/package/webpack-node-externals

50
Jonathan Borges

ここで述べたように、ビューライブラリが原因でエクスプレスを削除するだけでよい場合は、webpack構成からエクスターナルのエクスプレスを明示的にターゲットにすることもできます。

externals: [{ 'express': { commonjs: 'express' } }]

2
Jadam