2017-12-08 2 views
0

두 개의 리포지토리가 있습니다.NodeJS에서 다른 Repos 빌드 파일을 제공하는 방법은 무엇입니까?

  • Vue 클라이언트 인터페이스입니다.
  • NodeJS 소켓 및 웹 서버.

    :

내가 서버와 뷰 인터페이스의 내장 파일을 제공해야하고 진행하는 방법을 모른다 ...

나는이 문제를 해결하는 방법은 두 가지 아이디어를 가지고

  1. Vue repo를 복제 할 스크립트를 만들고 빌드 한 후 빌드 파일을 서버가 폴더 서버에 옮깁니다.

  2. Vue repo를 서버의 종속성으로 선언하고 종속성 파일을 빌드하고 액세스 할 수있는 방법을 찾으십시오.

두 번째 것은 더 깨끗해 보이지만 어떻게 접근해야할지 모르겠다. 누군가가 더 나은 접근 방식에 대해 생각해보고 어떻게 시작할 수 있을까요? 여기

답변

1

당신은 git 태그를 지정 했으므로 접근법 2를 사용 하겠지만 git 하위 모듈을 사용한다고 말할 것입니다. Vuejs 저장소 내에서 Vuejs 프로젝트를 빌드하는 일종의 webpack 태스크를 작성할 수 있습니다. 그런 다음 vuejs 저장소를 웹 서버/소켓 프로젝트에 서브 모듈 할 수 있습니다.

그런 다음 gulp 또는 webpack 스크립트를 사용하여 vuejs 프로젝트를 호출하여 빌드를 지시 할 수 있습니다. 빌드가 완료되면 express.static 함수를 사용하여 원하는 경로 (정확히 / 경로)에서 웹 서버의 빌드를 제공 할 수 있습니다.

서브 모듈을 사용하면 프론트 엔드의 새 릴리스를 준비하고 새 버전의 종속성으로 웹 서버를 재배치 할 준비가되었을 때 하위 모듈을 간단하게 충돌시킬 수 있습니다. 이것은 Ghost project이 프론트 엔드 배치를 수행하는 방법입니다.

Git Submodules documentation - https://git-scm.com/book/en/v2/Git-Tools-Submodules

+1

에 맞게 변경하십시오. 배우려는 대상 : https://delicious-insights.com/en/posts/mastering-git-submodules/ – Miaow

0

내가 익스프레스와 함께 할 방법은 다음과 같습니다

const express = require("express"), 
     path = require("path"), 
     app = express() 

const DIST_DIR = path.normalize(__dirname + "/../../VueOutputDir") 

app.use(express.static(DIST_DIR)) 

이 자동으로 VueOutputDir 디렉토리에서 index.html 및 자산을 될 것입니다.

+0

Vue Repo를 서버의 서버에 연결하는 방법을 찾고 있습니다. 서버가 없으면 서버가 실행되지 않습니다. 제안 사항에서 두 저장소를 모두 복제해야 빌드 할 수 있습니다 그들과 경로를 Vue output dir – Miaow