次の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は、まずまずの解決策を明らかにしていません。私はこの問題の特定のインスタンスを見てきましたが、解決策は警告を表示しないことでバイパスすることでした。
Webpack-node-externalsを使用します。
const nodeExternals = require('webpack-node-externals');
{
target: 'node',
externals: [nodeExternals()],
}
ここで述べたように、ビューライブラリが原因でエクスプレスを削除するだけでよい場合は、webpack構成からエクスターナルのエクスプレスを明示的にターゲットにすることもできます。
externals: [{ 'express': { commonjs: 'express' } }]