레이블이 nuxtjs인 게시물을 표시합니다. 모든 게시물 표시
레이블이 nuxtjs인 게시물을 표시합니다. 모든 게시물 표시

2020년 10월 17일 토요일

NuxtJs, VueJs 로 프론트엔드 구축시 정리했던 자료

새로운 프로젝트에서 기존의 springboot + thymeleaf 보다 VueJs를 사용하려고 했더니 NuxtJs라는 놈이 있어서 서버구축까지 간단하게 된다는 것을 알게되었다.

NextJs라는 ReactJs의 프레임워크를 VueJs로 포팅(?) 했다는 건데 사용법이 매우 간단했다.

thymeleaf 는 html에 이런저런 지저분한 자체태그옵션과 문법, 그리고 Jquery 등을 이용해서 정말 구린방식으로 개발해야되었는데, 콤포넌트 기반의 VueJs로 개발해보니 정말 내가 원했던 프레임워크였다는 생각이든다.


개발 소프트웨어 요구사항에 작업하면서 간단히 정리 한것을 올려보겠다.

1 NuxtJS Framework

  • 공식홈페이지 (https://nuxtjs.org/guide)

  • Server Side Rendering (SSR)이 가능한 FrontEnd Framework

  • VueJs의 장점을 SSR로 구축가능하도록 해줌

  • 자동으로 webpack 빌드

  • 직관적인 스캐폴딩

  • MIT 라이센스

  • Plug-in(node 모듈) 사용목록 [ 바로가기 ]

  • 개발팁
    • NuxtJS의 SSR 렌더링 기능을 활용하여 프론트엔드측은 자체 호스팅이 가능하도록 구성한다.
    • Server Side Rendering ( https://medium.com/@rubyblack/why-we-use-nuxt-js-seo-1-ssr-%ED%8E%B8-d5e8f02e64e0)
    • Javascript ( TypeScript 아님) 으로 개발한다.
    • 프로젝트의 스캐폴드는 NuxtJS의 기본 구조를 따르되, 하위 폴더는 프로젝트에 맞게 추가한다.
    • 직접 구현 하기 보다는 검증된 모듈/플러그인 을 사용한다.
    • 설정을 편집 및 개발은 VSCODE 편집기를 사용한다.
    • 통신모듈은 NuxtJs에서 추천하는 https://http.nuxtjs.org/ 모듈을 사용


2 VueJS

3 HTML5 & SEO

  • HTML5 란 https://ko.wikipedia.org/wiki/HTML5

  • META TAG를 페이지별로 적절하게 수정하기 위해서 NuxtJs 의 head 속성을 오버라이드 한다. (https://vue-nuxt.gitbook.io/nuxt/tutorials/making-blog/undefined) (https://medium.com/vue-mastery/best-practices-for-nuxt-js-seo-32399c49b2e5)

4 SCSS & SASS

https://heropy.blog/2018/01/31/sass/

2020년 9월 26일 토요일

Dokcer 내의 Jenkins 에서 nodejs , npm , nuxtjs, vuejs 빌드하기

 일단 Docker 에 jenkins/jenkins  이미지를  다운로드 받는다.

* 주의 kitematic 에서의 jenkins는 잘안됨

docker pull jenkins/jenkins:lts <- lastest도 괘안

받아서 기동후 쉘로 들어가서 암호찾아내서 일단 스탠다드 인스톨.

인스톨이 다 되었다면 /var/jenkins_home 폴더는 로컬폴더에 연결하고 다시 기동.

왠지 jenkins에서 nodejs 플러그인을 설치하면 될것같지만, 안된다.

그래서 젠킨스 컨테이너의 쉘을 root 권한으로 들어간다.

$ docker exec -it --user root YourContainer /bin/bash

애네들을 실행한다.

apt-get update

apt-get install -y git curl vim sudo apt-utils

curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -

apt-get install -y nodejs

rm -rf /var/lib/apt/lists/*

또는

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash

를 실행해서 nvm 을 설치하고

nvm install 12.6.3

해서 node를 설치하면

/root/.nvm/versions/node/v12.16.3

이딴 폴더가 생기지만 root 폴더밑에 있어서 jenkins가 읽지 못함.

단순무식으로 v12.16.3 의 모든 내용을 /var/jenkins_home/nodes/ 밑에 복사하자.

그리고나서 젠킨스 빌드시의 execute shell 에서

cd /var/jenkins_home/workspace/Fuck-curtaincall

/var/jenkins_home/nodes/bin/npm install

/var/jenkins_home/nodes/bin/npm run build

하면 nuxtjs 가 빌드된다.

그걸 웹서버에 올리고 재가동 하면 끄읕.


참. 젠킨스설정에서

이 빌드는 매개변수가 있습니다 . 에서

매개변수 branch 기본밸류 master

하고  소스코드관리에서 branch to build 항목에서

*/${branch} 하면됨

Nuxtjs, Springboot docker 이미지 만들기

 1.  nuxtjs 

Dockerfile 생성후

FROM node:12

WORKDIR /app
ADD . /app/

# global install & update
RUN npm i -g npm
#&& npm i -g yarn

RUN rm yarn.lock
RUN yarn
RUN yarn build

ENV HOST 0.0.0.0
EXPOSE 80

# start command
CMD [ "yarn", "start" ]

#sudo docker build --tag web-front:1.0.0 .
#docker run --name web_80 -p 80:80 web-front:1.0.0
#docker run --name web_8081 -p 8081:80 web-front:1.0.0

2.springboot
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE=target/*.war
COPY ${JAR_FILE} web-backend.war
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-Dspring.profiles.active=local","-jar","/web-backend.war"]
#docker build --build-arg "JAR_FILE=build/libs/*.war" -t web-backend:1.0.0 .
#docker run --name hehe3 -p 8081:8081 web-backend:1.0.0

2020년 8월 26일 수요일

Vujs , Nuxt 를 해보다.

 Vuejs 와 Nuxtjs 는 문서화가 잘 되어있으니까 그냥 쓰면 되고,


컴퍼넌트라는 단위로 만드는 것은 좋으나, 컴퍼넌트에 너무 많은 비지니스 로직이 들어가지 않도록 하는게 좋을거 같다.

또 컴퍼넌트에서 직접 서버와 통신하여 자료를 for 로 출력하는것은 테스트를 어렵게 만들기 때문에 되도록 Repositry 를 이용하여 컴퍼넌트에 props 나 mixin 형태로 주입(?) 하는 것이 좋다.

참고 : https://markus.oberlehner.net/blog/tight-coupling-vs-loose-coupling-in-vuejs/

혹시 화면단에서 i18n 지원이 필요하면 다음을 참고하자

https://dev.to/astagi/how-to-build-a-jamstack-multi-language-blog-with-nuxt-js-3gah

SEO  대응도 하고싶다면 이거.

https://vuedose.tips/optimize-seo-and-social-media-sharing-in-a-nuxt-blog