Vue.jsのお勉強中だよ

こんにちは、たまです。2回目です。前回のは↓です。(宣伝)

Progate終わってからはpaizaに入り浸りな私です。敗北してる様子↓

ただ流石にpaizaだけではアウトプットが無い人になっちゃうので、少しずつでも色んなことを勉強してるんだよアピールをしようと思います。

***やっと本編***

はじめに

最近はVue.jsを勉強し始めました。

「えっ、初心者はHTMLとCSSとjQueryからやれよ」みたいな声もありそうですけど、「jQueryは廃れ気味でVue.js、React、Angularの3大jsフレームワークの時代ですよ」みたいな記事がたくさんあって、私のjQueryへの思いは最早塵同然です。さよならjQuery。

そんな3大フレームワークの中で私がVue.jsを選んだ理由は単純にGoogleトレンド↓

エンジニアさん達が今勉強してる分野、絶対面白いじゃないですか。

環境作るよ

GitHubに上げて色んな人に触ってもらう練習に、ついでなのでdockerなるものを見よう見まねで触ります。超参考になった記事はこちら

本当にdockerは何も分からないのですがdocker-composeコマンドを使うやり方が楽そうなのでDockerfileとdocker-compose.ymlを書きます。結構バージョン周りの違いがあったのでtry&errorで修正も少ししました。

最初にDockerfile。色々調べてこんな感じに。

FROM node:10.15.0-alpine

WORKDIR /app

RUN apk update
RUN npm install -g @vue/cli

次にdocker-composer.yml。正直良く分かりません・・・

version: '3'
services:
  first-vue:
    container_name: first-vue
    build: .
    ports:
      - 8080:8080
    volumes:
      - .:/app
    tty: true

shellで以下のコマンドを順番に実行します。

$ docker-compose build
$ docker-compose up -d
$ docker-compose exec first-vue sh

そしたらcontainer内部のshellに入れるので(最高に自分でも何言ってるか分からない)以下のように進めます。

$ vue create .
?  Your connection to the default npm registry seems to be slow.
   Use https://registry.npm.taobao.org for faster installation? Yes

Vue CLI v3.3.0
? Generate project in current directory? Yes

Vue CLI v3.3.0
? Please pick a preset: default (babel, eslint)
? Pick the package manager to use when installing dependencies: NPM

なんか色々動くので少し待ってshellで

 $ npm run serve

> app@0.1.0 serve /app
> vue-cli-service serve

 INFO  Starting development server...
 98% after emitting CopyPlugin

 DONE  Compiled successfully in 17139ms                                                                                                                                10:49:35 PM

  App running at:
  - Local:   http://localhost:8080/

はい!立ち上がりました!ブラウザでlocalhost:8080にアクセスして見れました🌟

誰でも動かせるようにする

$ docker-compose upで一発で誰でもアプリが立ち上がるようにします。いやdocker考えた人天才すぎでは?

Dockerfileで他の人とpackageの情報を合わせるためにpackage.jsonをCOPYしてnpm installします。

FROM node:10.15.0-alpine

WORKDIR /app

COPY package.json .
COPY package-lock.json .

RUN apk update
RUN npm install -g @vue/cli
RUN npm install

docker-compose.ymlはサーバを立ち上げるコマンドを設定してあげます。

version: '3'
services:
  first-vue:
    container_name: first-vue
    build: .
    ports:
      - 8080:8080
    volumes:
      - .:/app
      - /app/node_modules
    command: npm run serve
    tty: true

これでみんな同じ開発環境で開発できるようになりました!GitHubにあげてるのでcloneしてやってみてください🌟

ついでに公開しちゃおう

世の中にはGitHubPagesなんていうめちゃくちゃ簡単にリリースができるサービスがあります。いやGitHub神👼

ドキュメントにshellscriptがあるのでそれをほぼ丸パクリします。docker-compose上で予め`npm run build`する必要があり、やや煩雑なのでここ上手くやりたい。。

#!/usr/bin/env sh

# `npm run build` before run this script

set -e

cd dist

git init
git add -A
git commit -m 'deploy'

git push -f git@github.com.sub:osanpozuki/first-vue-deploy.git master:gh-pages

cd -

vue.config.jsは公開先のリポジトリを三項演算子の後ろに設定してください。私はそこで1時間くらい詰まりました。

module.exports = {
    publicPath: process.env.NODE_ENV === 'production'
        ? '/first-vue-deploy/'
        : '/',
}

はい!あとはshellscript走らせてちゃんと公開できました〜

終わりに

開発環境作ったり簡単に公開できる仕組みを設定したりとっっっっっっても勉強になりました!CI/CDもやってみたかったんですが、いまいちやり方が分からなかったので一旦放置になってるのが悔しいです。

まだ始まりに立ったばっかりですけどこれからVue.jsの勉強頑張るぞ〜💪