[Vue] github pages 특정 폴더만 배포 시키기 (subtree), 경로설정
[Vue] github pages 특정 폴더만 배포 시키기 (subtree), 경로설정
vue.config.js 수정
1
2
3
4
5
6
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
transpileDependencies: true,
publicPath: process.env.NODE_ENV === 'production' ? '/vue-stagram/dist' : '/',
assetsDir: './',
})
.gitignore 수정
vue-cli로 프로젝트를 생성하고 원격 저장소에 푸쉬하게 되면 .gitignore에 명시된 폴더나 파일을 제외한 모든 폴더와 파일이 원격 저장소에 저장되게 된다.
만약 이 프로젝트를 원격 저장소에 저장시키고 데모 페이지 또한 배포하려는 상황이라면 이 방법을 사용하여 쉽게 빌드 된 페이지를 배포할 수 있다.
vue-cli로 프로젝트를 만들면
.gitignore 파일에서 다음과 같이 /dist 파일을 주석 처리 하거나 없앤다.
(vue-cli로 프로젝트를 만들면 기본적으로 ignore 되어있다.)
1
2
3
4
5
...
# /dist
...
그런 다음 명령어를 입력해서 파일과 폴더들을 추적 가능케 한다.
1
2
git add .
git commit -m 'initial'
그 후, git subtree를 이용하여 dist 폴더만 gh-page 브랜치에 배포시킨다.
1
git subtree push --prefix dist origin gh-pages
새로운 브랜치가 만들어지고 원격 저장소에 이 브랜치가 푸쉬된다.
package.json에 스크립트로 등록해서 사용할 수도 있다.
1
"gh-deploy": "git subtree push --prefix dist origin gh-pages"
…
1
2
3
4
5
npm run gh-deploy
or
yarn gh-deploy
두번째 푸시부터 제대로 안 될 경우
아래 명령어로 삭제 후 다시 push 한다.
1
git push origin `git subtree split --prefix dist master`:gh-pages --force
hash mode를 사용할 경우 router-link사용!
1
<router-link class="nav-link" :to="`/detail/${num}/comment`">Comment</router-link>
This post is licensed under CC BY 4.0 by the author.