거의 모든 빌드 시스템은 시계 메커니즘을 사용하여 개발 중에 건축 후 파일을 반복적으로 생성하는 문제를 해결하기로 선택합니다. 그러나 시계 메커니즘 아래에서, 우리는 오랫동안 코드를 수정하는 문제를 견뎌야하고, 새로 고침하기 전에 코드를 저장하고 효과를 보는 후 차 한 모금을 마셔야합니다. 여기서 우리는 왜 시계가은 총알이 아닌지 탐색 하고이 문제에 대한 더 나은 해결책을 찾으려고 노력합니다.
시계를 기반으로 한 사실
파일이 수정되면 수정으로 인한 파일 수정을 알 수 있으므로이 파일을 재건하십시오.
일반적으로 파일 A의 경우 파일 B와 같은 시나리오를 구성하는 데 해당 관계가 매우 정확합니다. 그러나 실제 시나리오에서는 건축 과정이 종종 그렇게 간단하지 않습니다. 예를 들어:
파일 A + 파일 B (파일에 의해 참조) -> 파일 C
이 시나리오에서 파일 B가 수정되면 많은 파일이 파일 B를 참조 할 수 있으므로 구성 작업에 어떤 파일을 구축 해야하는지 찾기가 어려울 수 있습니다.
파일이 업데이트 될 때마다 종속성 트리를 만들고 종속성 트리를 업데이트하고 새 종속성 트리를 기반으로 파일 빌드를 트리거하지 않는 한. 그러나 이것은 모든 플러그인 이이 메커니즘 자체로 구현해야하며 오류가 발생하기 쉽습니다. 따라서 실제로 시계 메커니즘은 전체 작업을 다시 실행합니다. 따라서 프로젝트가 커짐에 따라 시계 메커니즘이 느려지고 느려집니다 (전체 프로세스에 필요한 시간을 줄임으로써 캐시가 줄어든 경우에도 점점 더 많은 파일이 전체 프로세스를 다시 실행해야하기 때문에).
해결책
SRC는 직접 사용할 수 있습니다
Alloyteam & @ldjking은 간단히 SRC를 직접 넣고 빌드 작업을 브라우저쪽에 배치하거나 전혀 빌드하지도 않습니다. 제 시간에 수정하고 새로 고침 할 수있을뿐만 아니라 개발 프로세스 중에 시간 소비를 줄일 수 있습니다. 오프라인 구조는 개발 효율성이 아닌 성능 최적화 문제에만 책임이 있습니다.
일반적인 대표자들은 적은, 반응 등을 포함하지만 몇 가지 문제가 있습니다.
브라우저 측에서 우아한 구성 방법을 구현하기는 어렵고 개발 비용을 더욱 줄이기 위해 강력한 기능을 제공하기가 어렵습니다. 그들 대부분은 <style type = "text/less"> </style> way와 유사한 방식으로 스크립트를 도입 할 수 있습니다.
개발 모드의 실행 순서는 실제 시나리오와 반드시 동일하지 않으므로 보이지 않는 버그로 이어질 수 있습니다. 예를 들어, HTML 인라인을 구현하는 것은 비동기식이지만 릴리스 모드에서는 동기화되어 설명 할 수없는 버그가 발생합니다.
SASS의 JS 버전과 같은 브라우저 컴파일 성능은 걱정스럽고 컴파일 속도는 거의 견딜 수 없습니다.
온라인 및 오프라인 건설 시스템의 두 세트를 유지해야하므로 공구 개발 비용이 증가합니다.
로컬 서버의 동적 구성
한 가지 사실은 다음과 같습니다. 합리적인 사양 지원을 통해 브라우저에서 요청한 항목 파일로 돌아갈 수 있습니다. 이렇게하면 빌드 프로세스를 동적으로 트리거 할 수 있습니다.
서버를 로컬로 설정하여 서버가 요청을 캡처하고 서버에서 동적으로 빌드하도록합니다. 입력 파일로 돌아가는 한 Entry Pile을 Gulp 플러그인으로 구성된 파이프 라인에 던질 수 있으며 출력은 브라우저가 요구하는 파일입니다.
이렇게하면 위의 모든 문제를 해결할 수 있습니다.