2016-06-30 2 views
1

webpack으로 reactjs 앱을 만들었습니다. 모든 것이 지역에서 잘 작동합니다. npm start를 사용하면됩니다. webpack -p 명령을 사용하여 간단한 패키지를 배포하려고합니다. 그것은 나에게 번들을 주었다. 나는 그것을 덧붙였고, 잘 작동한다. 하지만 그것은 여전히 ​​내 로컬 서버가 핫 리로드 구성의 일환으로 실행 찾고 있습니다. 나는 뜨거워졌다. 거짓이었다. 그러나 아직도 그것을 찾고있다.웹팩의 핫 리로드 끄기

여기 내 webpack.config.js 여기

var path = require('path'); 
var webpack = require('webpack'); 


module.exports = { 
    devtool: 'eval', 
    entry: [ 
    'webpack-dev-server/client?http://csd.local.com:3000', 
    'webpack/hot/only-dev-server', 
    './src/index' 
    ], 
    output: { 
    path: path.join(__dirname, 'dist'), 
    filename: 'bundle.js', 
    publicPath: '/static/' 
    }, 
    plugins: [ 
    new webpack.HotModuleReplacementPlugin(), 
    new webpack.DefinePlugin({'process.env.NODE_ENV': JSON.stringify('production')}) 

    ], 
    module: { 
    loaders: [{ 
     test: /\.js$/, 
     loaders: ['react-hot', 'babel'], 
     include: path.join(__dirname, 'src') 
    }, 
    { test: /\.scss$/, 
     loaders: ["style", "css", "sass"], 
     include: path.join(__dirname, 'src') 
    } 
    ] 
    } 
}; 

그리고 내 server.js

var webpack = require('webpack'); 
var WebpackDevServer = require('webpack-dev-server'); 
var config = require('./webpack.config'); 
new WebpackDevServer(webpack(config), { 
    publicPath: config.output.publicPath, 
    hot: false, 
    historyApiFallback: true 
}).listen(3000, 'localhost', function (err, result) { 
    if (err) { 
    return console.log(err); 
    } 

    console.log('Listening at http://csd.local.com:3000/'); 
}); 

내가 원하는 건입니다 자극에 뜨거운 재로드를 해제합니다.

'webpack-dev-server/client?http://csd.local.com:3000', 
'webpack/hot/only-dev-server',**strong text** 

솔루션은 당신이 "개발"또는 "생산"환경에있어 어떠했는지를 감지하는 것입니다 : 앱과 함께 HMRE의 클라이언트 측 스크립트를 번들로 웹팩을 이야기하고 있기 때문에입니다

답변

0

. 이렇게하려면 "yargs"를 사용하여 cli 인수 (webpack 종속성이므로 설치하지 않아도 됨)를 구문 분석하고 그 결과를 사용하여 동적으로 구성을 빌드하십시오.

var production = require('yargs').argv.p; 

http://pastie.org/10895795

에서 완전한 예제를 참조하십시오
관련 문제