node를 사용하여 webpack을 백그라운드에서 실행하고 있습니까?
예. 그렇습니다. 여기에 많은 일이 있지만 궁극적으로는 webpack
과 webpack-dev-middleware
이 모두 처리하고 있습니다.
UseWebpackDevMiddleware
으로 시작합니다. 예컨대 :
app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions
{
HotModuleReplacement = true
});
이미, 많은 여기에 무대 뒤에서 벌어지고, 그래서 난 그냥 플레이의 주요 부분에 대한 개요를주지 거기에 말했듯
. 여기
UseWebpackDevMiddleware
(
source)에서 코드의 중요한 라인이다 :
nodeServices.InvokeExportAsync<WebpackDevServerInfo>(
nodeScript.FileName,
"createWebpackDevServer",
JsonConvert.SerializeObject(devServerOptions)).Result;
ASP.NET NodeJs 코어와의 통신이 발생하는 곳 InvokeExortAsync
함수이다. nodeServices
변수는 HttpNodeInstance
의 인스턴스이며, 이는 OutOfProcessNodeInstance
의 하위입니다. 이 때문에 (source)처럼, 건설 있어요 때 OutOfProcessNodeInstance
클래스는 NodeJs 서버를 생성합니다 :
는
_nodeProcess = LaunchNodeProcess(startInfo);
이는 엔트리 포인트-http.js 스크립트 파일 (source)를 사용하여 NodeJs 서버를 실행 끝납니다. 이것은 많은 코드를 가지고 있지만, 호출이 끝난 후 InvokeExportAsync
으로 들어오는 요청을 수신하는 HTTP 서버를 생성합니다. 여기에 호출되는
자바 스크립트 기능, createWebpackDevServer
(source)는, 예외 처리 간결함을 제거하여, 다음과 같습니다 호출 을되고있는 createWebpackDevServer
에 대한 많은 코드가있다
export function createWebpackDevServer(callback) {
let aspNetWebpack = require('aspnet-webpack');
return aspNetWebpack.createWebpackDevServer.apply(this, arguments);
}
(source)이므로 여기서 설명하지는 않겠지 만 webpack-dev-middleware (source)를 사용하는 연결 서버 (source)를 실행하는 것으로 끝납니다.
독자가 충분히 탐구 할 수있는 충분한 설명과 출발점이되기를 바랍니다.
이 답변은 도움이 되었습니까? 나에게 설명하고 설명해 줄 다른 것이 있습니까? –
훌륭한 답변입니다. 감사합니다. –