반응하는 앱이 있습니다. 익스프레스 서버에서 실행되며 webpack에 번들됩니다. 내 문제는 내가 서버를 재시작 할 때마다 프론트 엔드를 변경하지 않아도 프론트 엔드 번들을 재구성하는 것이 영원히 필요하다는 것입니다.더 똑똑한 webpack을 react와 express 번들로 묶습니다.
프런트 엔드 번들과 관련이없는 서버/API 변경시 서버 부분을 다시로드하고 현재 프런트 엔드 번들을 그대로 유지하는 것이 좋습니다.
const compiler = webpack(webpackConfig)
const middleware = webpackMiddleware(compiler, {
publicPath: webpackConfig.output.publicPath,
contentBase: 'src',
stats: {
colors: true,
hash: false,
timings: true,
chunks: false,
chunkModules: false,
modules: false
}
})
app.use(middleware)
app.use(webpackHotMiddleware(compiler))
app.get('*', (req, res) => {
res.write(middleware.fileSystem.readFileSync(path.join(__dirname, 'build/app.html')))
res.end()
})
이 할 수있는 현명한 방법이 있나요 : 여기
는 DEV 환경에서의 실행 코드를 무엇입니까? 현재 프론트 엔드 번들을 메모리에 남겨두고 서버를 다시로드 할 수 있습니까? 또는 번들을 업데이트해야하는지 여부를 감지하고 업데이트 할 필요가없는 경우 프로세스를 건너 뛸 수 있습니까?모든 도움말, 조언 및 제안을 환영합니다! 다른 정보가 필요한 경우 알려주십시오. 감사!
webpack은 server.js 파일에서 실행되지만,'webpack-dev-middleware' 모듈은 인용문이 말하는 것을 반영하는'lazy' 옵션을 제공합니다. 그러나 나는 정말로 그 문제를 해결할 것이라고 생각하지 않습니다. 서버를 멈 추면 메모리에서 빌드가 제거 될 것입니까? –
@ShanRobertson, 나는 나의 대답을 편집했다. 공개 레포에서 작업하는 경우 링크를 공유하여 테스트 해 볼 수 있도록하십시오.'lazy : true;는 시청하지 않는 것을 의미하지만'watchOptions'는 모든 요청에 대해 재 컴파일을합니다. lazy가 false로 설정된 경우에만 작동합니다. webpack-dev-server는 디스크에 파일을 쓰지 않고 Express 인스턴스를 통해 메모리의 결과를 제공합니다. 그러나 webpack --watch는 파일을 디스크에 쓰므로 빌드를 유지할 수 있습니다. – Sbe88