обновление
Я обнаружил, что только изменение сценария может заставить его снова запускаться, но если я не использую webpack-dev-middleware
, я не могу получить bundle.js
.
Я также попытался добавить параметр path: path.join(__dirname, "assets")
в webpack-hot-middleware
, но он все равно не работает.
Я использую webpack-hot-middleware, но браузер возвращает 404 для пакета. js. Он отлично работает, если я просто поместил bundle. js в каталог ресурсов, изменив такие изменения: path: path.resolve(__dirname, 'assets')
, <script src="/bundle.js">)</script>
.
Теперь я очень уверен, что webpack-dev-middleware
работает нормально, поэтому я думаю, что есть что-то не так с моей конфигурацией webpack-hot-middleware
или другими. Вот мой код.
server.js
webpack.config.js
assets
js
//bundle.js
//server.js
const webpack = require('webpack');
const webpackDevMiddleware = require('webpack-dev-middleware');
const webpackHotMiddleware = require('webpack-hot-middleware');
let webpackConfig;
if (npm_config_argv.original.indexOf("debug") > -1) {
webpackConfig = require('./webpack.dev.config.js');
} else {
webpackConfig = require('./webpack.config.js');
}
let compiler = webpack(webpackConfig);
app.use(webpackDevMiddleware(compiler, {
publicPath: webpackConfig.output.publicPath
}));
app.use(webpackHotMiddleware(compiler, {
publicPath: webpackConfig.output.publicPath
}));
// webpack.config.js
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'assets', 'js'),
publicPath: "/"
}
// script in index.html
<script src="/js/bundle.js"></script>
Если вам нужна дополнительная информация, я постараюсь прояснить ее. Любая помощь будет принята с благодарностью.