禁用webpack重新加载

时间:2016-06-09 07:11:21

标签: javascript webpack

我正在配置简单的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()
});

2 个答案:

答案 0 :(得分:0)

也许解决方法是在这种情况下跳过webpack-dev-server并以监视模式(webpack --watch)运行webpack?监视模式将在检测到更改时重新编译文件。

在这种情况下,你必须单独为你的网站服务(比如使用serve),但这种组合可以达到你想要的效果。

答案 1 :(得分:0)

这是一个古老的问题,但我相信webpack-dev-server --liveReload false现在可以在这种情况下提供帮助。