HMR이 실제로 원활하게 작동하고 있습니까? 내 때로는 핫 스와핑 만 있습니다. 어떻게 가능합니까? 나는 한 줄의 줄을 편집 할 것이고 바꿀 것이다. 그런 다음 동일한 텍스트를 편집하고 보지 않을 것입니다. webpack 1.14를 사용하고 있습니다. 이 모든 예제를 온라인에서 검색하고 다시 실행하고 webpack.config를 구성하는 데 너무 많은 시간을 보냈습니다. 이 작업은 매번 작동하는 webpack-dev-server로 정확히 설정하는 방법에 대한 실제 설명서가 없어도 어렵습니다. stackOverflow 및 webpack GitHub 문제에 대한 모든 대답이 없으므로 작성자와 소수의 전문가를 제외하고는 아무도 정말로 이해할 수 없다고 생각할 수 있습니다.HMR 만 때때로 업데이트됩니다.
나는이처럼 보이는 웹팩 설정이 있습니다
var config = {
entry: [
'webpack-dev-server/client?http://localhost:8080',
// bundle the client for webpack-dev-server
// and connect to the provided endpoint
'webpack/hot/only-dev-server',
// bundle the client for hot reloading
// only- means to only hot reload for successful updates
DEV + "/index.jsx"],
output: {
path: OUTPUT,
filename: "app.js",
publicPath: '/',
},
devtool: 'inline-source-map',
devServer: {
hot: true,
// enable HMR on the server
contentBase: OUTPUT,
// match the output path
publicPath: '/'
// match the output `publicPath`
},
plugins: [
new ExtractTextPlugin('styles.css'),
new webpack.NamedModulesPlugin(),
/* new webpack.DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify('production')
}
}),
new webpack.optimize.UglifyJsPlugin()*/
],
module: {
loaders: [
{
test: /\.jsx?$/,
include: DEV,
loaders: ["react-hot", "babel-loader"],
},
{
test: /\.css$/,
loader: 'style-loader'
}, {
test: /\.css$/,
loader: 'css-loader',
query: {
modules: true,
localIdentName: '[name]__[local]___[hash:base64:5]'
}
}
],
}
};
module.exports = config;
내 파일 구조는 다음과 같습니다
import React from "react";
import ReactDOM from "react-dom";
import TabComponent from './TabComponent/TabComponent.jsx';
import { AppContainer } from 'react-hot-loader';
ReactDOM.render(
<TabComponent />,
document.querySelector("#container")
);
if (module.hot) {
module.hot.accept('./TabComponent/TabComponent.jsx',() => {
const NewApp = require('./TabComponent/TabComponent.jsx').default
ReactDOM.render(NewApp)
});
}
이상한 것은 :
-> EZTube
-> dev
->TabComponent
->other source code files
->index.jsx
-> output
->app.js
->index.html
->styles.css
-> webpack.config.js
-> package.json
내 index.jsx처럼 보이는 때로는 핫 스왑이 발생합니다. 다른 시간은 전혀 아닙니다. 그냥 거기에 현명한 인터넷 현자가 있었는지 궁금해서 현재 설정으로 왜 그런 일이 일어나고 있는지 이해할 수 있습니다.
구성 요소'constructor()'과 같은 일부 항목은 핫 리로드에서 결코 다시 실행되지 않습니다. 추측 만 : 어쩌면 webpack이 너무 많은 파일을 추적하려고하고 OS의 파일 설명자가 부족합니다. 프로젝트가 얼마나 큰가요? 그것은 도커 또는 방랑자 안에 있습니까? –
잘 단추 텍스트. 구성 요소의 렌더링 메서드에서. 심지어 .css doesnt 일을 바꾸는 것. 나는 내가 발견 한이 모든 변이를 재건하고 시도했다. 모든 구성 요소에서 module.hot.accept가 필요합니까? –
잘 dev 모드에서 당신은 'ExtractTextPlugin'을 사용해서는 안됩니다. 그러면 css가 별도의 파일로 이동합니다. 당신은 JS 코드로 바뀌고 다음 페이지에 주입, dev에 자바 스크립트 번들에 번들, 이상한지만 webpack 뜨거운 CSS를 다시로드 할 수 싶습니다 –