이미 알고 있는 HTTP 서버와 프레임워크를 사용할 수 있게 해주는 정적 웹 사이트 생성기입니다. Staticgen에게 서버 시작 방법을 알려준 다음 서버가 사이트를 크롤링하고 필요한 모든 페이지와 자산이 포함된 정적 버전을 생성하는 것을 지켜보세요.
익숙하지 않은 경우 실제로 수십 년 된 wget 명령을 사용하여 동적 웹 사이트에서 정적 웹 사이트를 출력할 수 있습니다. 이 프로젝트는 동일한 아이디어를 위해 특별히 제작되었으며 팀에서 원하는 HTTP 서버 및 프레임워크를 사용할 수 있도록 합니다. 어떤 언어로든 이미 익숙합니다.
아직 과학적인 벤치마크나 비교를 수행하지 않았지만 2014년 8코어 MBP에 대한 몇 가지 결과는 다음과 같습니다.
gobinaries.com을 통해:
$ curl -sf https://gobinaries.com/tj/staticgen/cmd/staticgen | sh
구성은 프로젝트 루트 디렉터리의 ./static.json
파일에 저장됩니다. 다음 옵션을 사용할 수 있습니다.
"http://127.0.0.1:3000"
입니다."build"
입니다.[]
입니다.30
입니다. 먼저 ./static.json
구성 파일을 만듭니다. 예를 들어 Go 서버에 대한 구성은 다음과 같습니다. 유일한 필수 속성은 command
입니다.
{
"command" : " go run main.go " ,
"concurrency" : 50 ,
"dir" : " dist "
}
다음은 Node.js 서버의 예입니다. NODE_ENV
프로덕션에 할당되므로 Express 템플릿 캐시와 같은 최적화를 사용하여 서비스 성능을 향상시킵니다.
{
"command" : " NODE_ENV=production node server.js "
}
사전 렌더링 프로세스를 시작하려면 staticgen
명령을 실행하십시오.
$ staticgen
Staticgen은 제공된 command
실행하고 구성된 url
에서 서버를 사용할 수 있을 때까지 기다립니다. 페이지와 자산이 구성된 dir
에 복사된 다음 서버가 종료됩니다.
기본적으로 생성 프로세스의 제한 시간은 15분입니다. 상황에 따라 -t, --timeout
플래그를 사용하여 이를 늘리거나 줄일 수 있습니다. 다음은 몇 가지 예입니다.
$ staticgen -t 30s
$ staticgen -t 15m
$ staticgen -t 1h
command
실행하면 Staticgen은 STATICGEN
환경 변수를 1
로 설정하여 필요한 경우 동작을 변경할 수 있습니다.
사전 렌더링된 사이트를 보려면 다음 명령을 실행하여 정적 파일 서버를 시작하고 브라우저를 엽니다.
$ staticgen serve
전체 예제는 예제 디렉터리를 참조하세요.
Staticgen은 헤드리스 브라우저를 사용하여 사전 렌더링하지 않으므로 속도가 빨라지지만 페이지를 조작하는 클라이언트 측 JavaScript에 의존할 수 없음을 의미합니다.
이 프로젝트는 CTO.ai의 후원을 받아 개발팀이 명령줄을 벗어나지 않고도 워크플로 자동화를 쉽게 생성하고 공유할 수 있도록 해줍니다.
내 GitHub 후원자는 다음과 같습니다.