我正在将Webpack实施到旧版Express前端应用程序中。我已经按照说明实施了webpack-dev-middleware和webpack-hot-middleware,但是我不知道如何实际引用索引文件中webpack-dev-middleware构建的内存包。 / p>
server.js:
......
// Webpack HMR
if (isDevelopment) {
const webpack = require('webpack');
const webpackConfig = require('./webpack.config');
const compiler = webpack(webpackConfig);
app.use(
require('webpack-dev-middleware')(compiler, {
noInfo: false,
hot: true,
publicPath: webpackConfig.output.publicPath,
})
);
app.use(require('webpack-hot-middleware')(compiler));
}
....
webpack.config.js:
...
entry: {
app: [
'webpack-hot-middleware/client?path=http://localhost:3001/__webpack_hmr&timeout=2000&overlay=false',
path.join(__dirname, './public/js/boot/app.js'),
],
deps: [
'webpack-hot-middleware/client?path=http://localhost:3001/__webpack_hmr&timeout=2000&overlay=false',
path.join(__dirname, './public/js/boot/deps.js'),
]
},
output: {
path: isDevelopment ? path.join(__dirname, './public/js/bundles') : path.join(__dirname, './dist/js/bundles'),
publicPath: '/',
filename: '[name].js'
},
....
Base view: server/views/index.jade:
...
script(src='/js/bundles/app.js')
script(src='/js/bundles/deps.js')
...
注意:如果我禁用webpack-dev-middleware
并仅使用Webpack构建文件,它们就可以正常工作。问题是(我认为)我在基本index.jade视图中使用该路径引用捆绑的方式。由于webpack-dev-middleware将捆绑软件写入内存,而不是写入文件系统中的该位置,因此它试图读取的内容不存在。
引用这些包路径的正确方法是什么,以便它们是来自webpack-dev-middleware的内存中包?
项目布局: