Express ile çalışan bir düğüm sunucusu için web paketi yapılandırmam var. Geliştirme aşamasındaysa, Express sunucusunu ve Webpack Dev Server'ı çalıştırıyorsa, giriş dosyası Express sunucusunu çalıştırır. Sorun, webpack dev sunucusu başlatıldığında yatar; Unhandled rejection Error: invalid argument
hakkında şikayet eder veya bulunamadı yolları. Webpack dev sunucusunda kullanılan istemci yapılandırması, CLI'den kendi başına kullanıldığında iyi çalışır, ayrıca webpackdevserver düzenli (paketlenmemiş) bir dosyada başlatıldığında çalışır.Webpack Dev Server'ın bir web paketi paketi içinde çalıştırılması
Her yöntemdeki fark, yapılandırmadan yazdırılan yolların, çalışmakta olan ve olmayanlar arasında farklı olan yollardır. Bu yollar, her durumda farklı olan __dirname'den çözülür. Bunun nedeni neden olabilir ve normal __dirname yolunu elde etmek mümkün mü?
Şimdiden teşekkürler.
Sunucu Yapılandırma:
{
target: 'node',
entry: rootDirectory,
externals: nodeModules,//readDirSync('node_modules').filter(x => x !== '.bin'),
output: {
path: join(rootDirectory, 'build'),
filename: 'index.js'
},
module: {
loaders: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel'
}
]
},
plugins: [
new DefinePlugin({
'process.env': {
'NODE_ENV': JSON.stringify('development'),
'PORT': 8080,
'SERVER': true,
'CLIENT': false
}
})
],
node: {
__dirname: false,
__filename: false
}
};
Müşteri Yapılandırma:
{
entry: {
client: [
'webpack-dev-server/client?http://localhost:8080',
'webpack/hot/only-dev-server',
'./client'
]
},
output: {
path: join(rootDirectory, 'public'),
filename: 'bundle.js',
publicPath: ''
},
module: {
loaders: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel'
}
]
},
plugins: [
// new DefinePlugin({
// 'process.env': {
// 'NODE_ENV': JSON.stringify('development'),
// 'PORT': 8080,
// 'SERVER': false,
// 'CLIENT': true
// }
// }),
new HTMLWebpackPlugin({
template: './index.tmp.html',
filename: 'index.html',
chunks: ['client']
}),
new webpack.HotModuleReplacementPlugin()
]
}
index.js
import devServer from './devServer';
import server from './server';
const PORT = process.env.PORT || 8080;
switch (process.env.NODE_ENV || 'development') {
case 'development': devServer(PORT);
case 'production': server(PORT - 1);
}
devServer.js
// import Express from 'express';
import webpack from 'webpack';
import WebpackDevServer from 'webpack-dev-server';
// import webpackDevMiddleware from 'webpack-dev-middleware';
// import webpackHotMiddleware from 'webpack-hot-middleware';
import {join} from 'path';
import config from './webpack/dev/client.config';
export default (PORT) => {
// let app = new Express();
let compiler = webpack(config);
let serverOptions = {
inline: true,
hot: true,
contentBase: '/public',
publicPath: config.output.publicPath,
proxy: {
'*': `http://localhost:${PORT - 1}`
}
}
let app = new WebpackDevServer(compiler, serverOptions);
app.listen(PORT);
}
client.js webpack.config.js
yılında
console.log('hello world');
kod yapısı
./index.js
./server.js
./devServer.js
./client.js
./webpack/dev/server.config.js
./webpack/dev/client.js
./public
./build
Hata Stack
Unhandled rejection Error: invalid argument
at pathToArray (/Users/AJ/Desktop/winebox/node_modules/memory-fs/lib/MemoryFileSystem.js:44:10)
at MemoryFileSystem.mkdirpSync (/Users/AJ/Desktop/winebox/node_modules/memory-fs/lib/MemoryFileSystem.js:139:13)
at MemoryFileSystem.(anonymous function) [as mkdirp] (/Users/AJ/Desktop/winebox/node_modules/memory-fs/lib/MemoryFileSystem.js:279:34)
at Compiler.<anonymous> (/Users/AJ/Desktop/winebox/node_modules/webpack/lib/Compiler.js:229:25)
at Compiler.next (/Users/AJ/Desktop/winebox/node_modules/tapable/lib/Tapable.js:67:11)
at /Users/AJ/Desktop/winebox/node_modules/html-webpack-plugin/index.js:163:9
at PassThroughHandlerContext.finallyHandler (/Users/AJ/Desktop/winebox/node_modules/bluebird/js/release/finally.js:55:23)
at PassThroughHandlerContext.tryCatcher (/Users/AJ/Desktop/winebox/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/Users/AJ/Desktop/winebox/node_modules/bluebird/js/release/promise.js:503:31)
at Promise._settlePromise (/Users/AJ/Desktop/winebox/node_modules/bluebird/js/release/promise.js:560:18)
at Promise._settlePromise0 (/Users/AJ/Desktop/winebox/node_modules/bluebird/js/release/promise.js:605:10)
at Promise._settlePromises (/Users/AJ/Desktop/winebox/node_modules/bluebird/js/release/promise.js:684:18)
at Async._drainQueue (/Users/AJ/Desktop/winebox/node_modules/bluebird/js/release/async.js:126:16)
at Async._drainQueues (/Users/AJ/Desktop/winebox/node_modules/bluebird/js/release/async.js:136:10)
at Immediate.Async.drainQueues [as _onImmediate] (/Users/AJ/Desktop/winebox/node_modules/bluebird/js/release/async.js:16:14)
at processImmediate [as _immediateCallback] (timers.js:383:17)
'webpack.config.js' dosyanıza bir bağlantı verebilir misiniz? –
Tamam, yapılandırma dosyalarını ve kod yapısının bazılarını ekledim. Ve aldığım hata yığını. –
Aynı sorun var. Herhangi bir güncelleme var mı? –