2016-06-09 41 views
1

我正在配置简单的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配置:

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

也许解决方案是在这种情况下跳过webpack-dev-server并以手表模式运行webpack(webpack --watch)instea d?手表模式会在您检测到更改时重新编译您的文件。

在这种情况下,yu将不得不单独为您的网站服务(比如使用serve),但是这种组合可以实现您想要的功能。

+0

是的,这可能会工作,我会检查 – Kamil