github のこの 1 つのスレッドを除いて、この機能について話している人をあまり見たことがありません: https://github.com/webpack/webpack/issues/2254
この構成は私にとってはうまく機能していますが、別のターゲットでクライアント側の JavaScript を構築できるように、複数の構成を配列として使用したいと考えています。配列に入れるとすぐに壊れます。
これが私の設定です:
const nodeExternals = require('webpack-node-externals');
const serverConfig = (env = { dev: false }) => ({
entry: './src/server/index.js',
target: 'node',
externals: [nodeExternals()],
module: {
loaders: [
{
test: /\.js$/,
exclude: /(node_modules)/,
loader: 'babel-loader',
query: {
plugins: ['transform-es2015-modules-commonjs'],
},
},
],
},
resolve: {
modules: ['src', 'node_modules'],
},
output: {
filename: 'server.js',
},
watch: env.dev,
});
module.exports = [serverConfig];
そして、これは私がビルドしようとしたときに私が得るエラーです:
throw new Error("'output.filename' is required, either in config file or as --output-filename");
^
Error: 'output.filename' is required, either in config file or as --output-filename
at processOptions (/home/joe/Websites/LSDM/node_modules/webpack/bin/convert-argv.js:505:11)
at Array.forEach (native)
at processConfiguredOptions (/home/joe/Websites/LSDM/node_modules/webpack/bin/convert-argv.js:141:12)
at module.exports (/home/joe/Websites/LSDM/node_modules/webpack/bin/convert-argv.js:119:10)
at Object.<anonymous> (/home/joe/Websites/LSDM/node_modules/webpack/bin/webpack.js:141:40)
at Module._compile (module.js:571:32)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
at Function.Module._load (module.js:439:3)
リリースされたばかりの 2.1.0-beta.28 にアップグレードしましたが、まだ発生しています。誰にもアイデアはありますか?
好奇心から --output-filename を使用して出力ファイル名を設定しようとしましたが、次のようになります。
Configuration file found but no entry configured.
Use --help to display the CLI options.
ありがとう、
編集:
関数から配列を返すと、両方が正常にビルドされますが、env.dev を使用して watch が true に設定されなくなり、ビルドして終了するだけです。
const nodeExternals = require('webpack-node-externals');
module.exports = (env = { dev: false }) => {
const serverConfig = {
entry: './src/server/index.js',
target: 'node',
externals: [nodeExternals()],
module: {
loaders: [
{
test: /\.js$/,
exclude: /(node_modules)/,
loader: 'babel-loader',
query: {
plugins: ['transform-es2015-modules-commonjs'],
},
},
],
},
resolve: {
modules: ['src', 'node_modules'],
},
output: {
filename: 'server.js',
},
watch: env.dev,
};
const bundleConfig = {
entry: './src/js/index.js',
module: {
loaders: [
{
test: /\.js$/,
exclude: /(node_modules)/,
loader: 'babel-loader',
query: {
plugins: ['transform-es2015-modules-commonjs'],
},
},
],
},
resolve: {
modules: ['src'],
},
output: {
filename: 'res/js/bundle.js',
},
};
return [serverConfig, bundleConfig];
};