我正在使用 webpack 成功运行我的反应前端,使用以下配置:
{
name: 'client',
entry: './scripts/main.js',
output: {
path: __dirname,
filename: 'bundle.js'
},
module: {
loaders: [
{
test: /.jsx?$/,
loader: 'babel-loader',
exclude: /node_modules/,
query:{
presets: ['es2015', 'react', 'stage-2']
}
}
]
}
}
我正在尝试建立一个 node.js Express 后端,并希望通过 webpack 运行它,这样我就有一个单独的服务器同时运行后端和前端,因为我想使用 babel 来传输我的 javascript。
我做了一个快速测试服务器,看起来像这样:
var express = require('express');
console.log('test');
var app = express();
app.get('/', function(req, res){
res.send("Hello world from Express!!");
});
app.listen(3000, function(){
console.log('Example app listening on port 3000');
});
If I run this with node index.js
and open my browser on localhost:3000
it prints "Hello world from Express!!". So far so good. Then I tried creating a web-pack config for it:
var fs = require('fs');
var nodeModules = {};
fs.readdirSync('node_modules')
.filter(function(x) {
return ['.bin'].indexOf(x) === -1;
})
.forEach(function(mod) {
nodeModules[mod] = 'commonjs ' + mod;
});
module.exports = [
{
name: 'server',
target: 'node',
entry: './index.js',
output: {
path: __dirname,
filename: 'bundle.js'
},
externals: nodeModules,
module: {
loaders: [
{
test: /\.js$/,
loaders: [
'babel-loader'
]
},
{
test: /\.json$/,
loader: 'json-loader'
}
]
}
}
当我运行命令 webpack-dev-server
时,它成功地启动了(看起来是这样)。但是,如果我现在在 localhost:3000
上打开浏览器,它只是说该网页不可用,就像当服务器根本不运行时一样。
我对 node 和 webpack 都很陌生,所以要么是我在某个地方犯了一个小错误,要么就是我大错特错了;)