我正在配置简单的webpack堆栈并且它可以工作,但问题是它会在每个文件上重新加载应用程序。有没有办法在每次更改文件时关闭重新加载?我想手动重新加载页面,我也没有使用热重载,我也不想使用它。
对于服务器我正在使用文件:
/*eslint no-console:0 */
'use strict';
require('core-js/fn/object/assign');
const webpack = require('webpack');
const WebpackDevServer = require('webpack-dev-server');
const config = require('./webpack.config');
const open = require('open');
new WebpackDevServer(webpack(config), config.devServer)
.listen(config.port, 'localhost', (err) => {
if (err) {
console.log(err);
}
console.log('Listening at localhost:' + config.port);
console.log('Opening your system browser...');
open('http://localhost:' + config.port + '/webpack-dev-server/');
});
对于webpack配置,这些是一些部分:
module.exports = {
additionalPaths: additionalPaths,
port: defaultSettings.port,
debug: true,
devtool: 'eval',
output: {
path: path.join(__dirname, '/../dist'),
filename: '[name].js',
publicPath: defaultSettings.publicPath
},
devServer: {
contentBase: './src/',
historyApiFallback: true,
hot: false,
port: defaultSettings.port,
publicPath: defaultSettings.publicPath,
noInfo: false
},
resolve: {
extensions: ['', '.js', '.jsx'],
alias: {
plugins: `${defaultSettings.srcPath}/../plugins`,
core: `${defaultSettings.srcPath}/../core`
}
}
};
和dev config:
let config = Object.assign({}, baseConfig, {
entry: {
start: ['./src/index'],
vendors: [],
core: './plugins/lunchbadger-core/index',
plugins: infoFile.plugins.map((plugin) => { return ('./plugins/lunchbadger-' + plugin); })
},
cache: true,
devtool: 'eval',
plugins: [
new webpack.NoErrorsPlugin()
],
module: defaultSettings.getDefaultModules()
});
答案 0 :(得分:0)
也许解决方法是在这种情况下跳过webpack-dev-server并以监视模式(webpack --watch
)运行webpack?监视模式将在检测到更改时重新编译文件。
在这种情况下,你必须单独为你的网站服务(比如使用serve),但这种组合可以达到你想要的效果。
答案 1 :(得分:0)
这是一个古老的问题,但我相信webpack-dev-server --liveReload false
现在可以在这种情况下提供帮助。