[英]How to make Webpack build on Express server started
我是React和Webpack的新手。 我有这样的webpack.config.js
:
const webpack = require('webpack'); const path = require('path');
module.exports = {
cache: true,
entry: {
'user': ['./client/User/index']
},
output: {
filename: '[name].bundle.js',
path: path.resolve(__dirname, 'dist'),
publicPath: '/static'
},
module: {
rules: [
{
test: /\.js$/,
loader: 'babel-loader',
exclude: /node_modules/,
include: path.join(__dirname, 'client'),
query: { cacheDirectory: true }
}
]
},
node: { fs: 'empty' }
};
这是我的Express服务器的app.js
条目:
import express from 'express';
import bodyParser from 'body-parser';
import morgan from 'morgan';
import webpack from 'webpack';
import session from 'express-session';
const app = express();
import config from './webpack.config';
const compiler = webpack(config);
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use('/assets', express.static(`${__dirname}/static`));
app.use('/', require('./server/route/index'));
app.listen(3000, () => console.log('Our Blog is listening on port 3000...'));
Webpack不会生成,并且不会按照配置在dist
文件夹中产生任何捆绑包。 仅当我使用webpack-cli
命令时才能构建。 此外,在我的html
文档中,我将捆绑软件包含为<script src='/static/user.bundle.js'></script>
。 我认为这必须是正确的路径,因为它将/static
映射到本地计算机上的dist
文件夹,该文件夹在构建后将束确切定位在本地计算机上。 但是由于找不到资源,它不断向我发送404错误。 你能帮我解决这个问题吗?
webpack在内存中创建文件。 因此您无法根据文档看到它。
webpack-dev-server编译后不写入任何输出文件。 相反,它将捆绑文件保存在内存中,并像在服务器根路径上挂载的真实文件一样提供它们。 如果您的页面希望在其他路径上找到捆绑文件,则可以使用开发服务器配置中的publicPath选项更改此文件。
我怀疑是因为您没有将其指定为production
模式,这就是为什么它没有写入dist
文件夹的原因。 另外,您需要使用webpack-dev-middleware 。 这是一个如何使用它的示例
我希望这有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.