Javascript 如何在Express server上创建网页包已启动

Javascript 如何在Express server上创建网页包已启动,javascript,node.js,reactjs,express,webpack,Javascript,Node.js,Reactjs,Express,Webpack,我是一个新的反应和网页包。我有webpack.config.js像这样: const webpack=require('webpack'); const path=require('path') 这是我的Express server的app.js条目: import express from 'express'; import bodyParser from 'body-parser'; import morgan from 'morgan'; import webpack from 'webp

我是一个新的反应和网页包。我有
webpack.config.js
像这样:

const webpack=require('webpack'); const path=require('path')

这是我的Express server的
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
文档中,我将捆绑包包括为
。我认为这一定是正确的路径,因为它会将
/static
映射到本地计算机上配置的
dist
文件夹,在生成包后该文件夹正好位于该文件夹中。但由于找不到资源,它一直向我发送404错误。你能帮我解决这个问题吗?

webpack在内存中创建文件。所以你看不到它

webpack dev服务器在编译后不会写入任何输出文件。相反,它将捆绑文件保存在内存中,并将它们当作装载在服务器根路径上的真实文件来使用。如果您的页面希望在不同的路径上找到捆绑包文件,则可以使用dev服务器配置中的publicPath选项来更改

我怀疑是因为您没有将其指定为
production
模式,所以它没有写入
dist
文件夹。您还需要使用。这里有一个关于如何使用它的答案


我希望这会有所帮助。

您的项目目录结构是什么样的?
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...'));