Netlify + GitHub에서 지속적인 통합(CI)을 사용하여 Angular 앱 배포.
1. Angular CLI를 사용하여 Angular 앱 만들기
Or you can download the final result HERE
ng new angular-ci-app
Make sure to choose
Yes
when it asks you to create the app with the Routing.
2. 새 GitHub 리포지토리 생성.
If you wonder why my GitHub is on a dark theme check this Chrome extension
3. VS Code에서 만든 앱을 엽니다.
터미널을 열고 앱을 새로 만든 리포지토리로 푸시합니다.
git remote add origin https://github.com/<Your-User-Name>/<Repo-Name>.git
git branch -M master
git push -u origin master
4. 경로로 간단한 앱 정리 및 추가.
App.Component.html
<style>
button {
margin-right: 20px;
}
</style>
<button routerLink="/home">Home</button>
<button routerLink="/about">about</button>
<router-outlet></router-outlet>
앱 라우팅.module.ts
import { NgModule } from "@angular/core";
import { Routes, RouterModule } from "@angular/router";
import { HomeComponent } from "./components/home/home.component";
import { AboutComponent } from "./components/about/about.component";
const routes: Routes = [
{ path: "", redirectTo: "/home", pathMatch: "full" },
{
path: "home",
component: HomeComponent,
},
{
path: "about",
component: AboutComponent,
},
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule],
})
export class AppRoutingModule {}
Home
및 About
구성 요소를 만듭니다. git add .
git commit -m "creating routes"
git push
5. Netlify에 저장소 연결하기
Netlify에서 새 계정을 만들고 저를 팔로우하세요.
Netlify will ask for permission
The selected branch will be the one which Netlify will be listening on it and whenever you push a change to it Netlify will build your app based on the configuration we will make below.
So, I will choosemaster
for now which is the only branch we currently have.
Type the build command of your app, In our case, it will be
ng build
By default Angular build your application inside a
dist
folder
and will create another folder inside of it with thename
of your app (You will find it insidepackage.json
) in my case itsangular-ci-app
So, I will typedist/angular-ci-app
6. 앱 미리보기
기본적으로 Netlify는 앱의 더미 URL 이름을 제공합니다. 원하는 경우 변경할 수 있습니다
Site Settings
.7. 404 페이지 문제 수정
예를 들어/home과 같은 경로가 있는 URL을 복사하여 붙여넣으면 404 페이지로 리디렉션됩니다.
이 문제를 해결하기 위해 두 가지 솔루션이 있습니다.
첫 번째 해결책:
_redirects
폴더 안에 src
파일을 만들고 다음 행을 붙여넣습니다.
/* /index.html 200
그런 다음 자산 배열에 대한 파일 검색 열기angular.json
=> projects > architect > options > assets
및 추가"src/_redirects"
각도.json
"projects": {
//...
"architect": {
"build": {
//..
"options": {
//..
"assets": ["src/favicon.ico", "src/assets", "src/_redirects"],
두 번째 솔루션:
다음과 같이 { useHash: true }
내부의 forRoot
함수에 대한 두 번째 인수로 app.routing.module
를 넣습니다.
// ...
@NgModule({
imports: [RouterModule.forRoot(routes, { useHash: true })],
exports: [RouterModule],
})
// ...
이렇게 하면 경로 앞에 #을 추가합니다.
따라서 경로는 http://localhost:4200/#/home
와 같을 것입니다.
8. 마스터 브랜치로 푸시하고 변경 사항을 확인합니다.
git add .
git commit -m "fixing 404 page"
git push
Netlify로 이동하면 자동으로 앱을 다시 빌드하기 시작했음을 알 수 있습니다.
이제 URL을 복사하여 붙여넣으면 더 이상 404 페이지로 이동하지 않습니다.
See my final Result https://angular-ci.netlify.app/#/home
팁
내 프로젝트에서 개인적으로 사용하는 몇 가지 팁을 알려 드리겠습니다.
/* /index.html 200
"projects": {
//...
"architect": {
"build": {
//..
"options": {
//..
"assets": ["src/favicon.ico", "src/assets", "src/_redirects"],
// ...
@NgModule({
imports: [RouterModule.forRoot(routes, { useHash: true })],
exports: [RouterModule],
})
// ...
git add .
git commit -m "fixing 404 page"
git push
Netlify로 이동하면 자동으로 앱을 다시 빌드하기 시작했음을 알 수 있습니다.
이제 URL을 복사하여 붙여넣으면 더 이상 404 페이지로 이동하지 않습니다.
See my final Result https://angular-ci.netlify.app/#/home
팁
내 프로젝트에서 개인적으로 사용하는 몇 가지 팁을 알려 드리겠습니다.
demo
브랜치를 만들고 이 브랜치를 Netlify에 연결합니다. dev
를 만들고 변경 사항을 커밋하고 푸시합니다. 변경 사항을 클라이언트에 게시하려면 dev
브랜치를 demo
브랜치로 병합하고 변경 사항을 푸시합니다. Reference
이 문제에 관하여(Netlify + GitHub에서 지속적인 통합(CI)을 사용하여 Angular 앱 배포.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/youssefzidan/deploying-angular-apps-with-continuous-integration-ci-on-netlify-github-2n8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)