DockerでVue.js環境を構築(VueCli)
今回はDockerでVue.js環境構築します!
VueCliを使って構築をするため、構築時のオプションの説明もしています!
環境構築準備
まず任意のディレクトリにDockerfile
とdocker-compose.yml
を作成します。
touch Dockerfile
touch docker-compose.yml
次にDockerfile
内を編集します!
FROM node:14.13.1
WORKDIR /app
次にdocker-compose.yml
を編集します!
version: '3'
services:
node:
build:
context: .
tty: true
environment:
- NODE_ENV=development
volumes:
- ./:/app
command: sh -c "cd hello-vue && npm run serve"
ports:
- "8080:8080"
これだけでDockerの準備は完了です!
簡単ですね!!
Vue.jsアプリを作成
次はもうコマンドを使用して作成します!
ターミナルに下記を入力します。
docker-compose run --rm node sh -c "npm install -g @vue/cli @vue/cli-init && vue create hello-vue"
しばらくするとターミナルに下記の内容が開くと思います。
Vue CLI v4.5.15
? Please pick a preset: (Use arrow keys)
Default ([Vue 2] babel, eslint)
Default (Vue 3) ([Vue 3] babel, eslint)
❯ Manually select features
これは予め用意されているデフォルトの設定か自身で選択して設定をするのか決められます。
今回は自身で選択するためManually select features
を選択します。
次に使用するライブラリ等を選択します。
Vue CLI v4.5.15
? Please pick a preset: Manually select features
? Check the features needed for your project: (Press <space> to select, <a> to toggle all, <i> to invert selection)
❯◉ Choose Vue version
◉ Babel
◯ TypeScript
◯ Progressive Web App (PWA) Support
◯ Router
◯ Vuex
◯ CSS Pre-processors
◉ Linter / Formatter
◯ Unit Testing
◯ E2E Testing
この画面の選択方法は下記の通りです。
- 1~9の数字で選択可能
- spaceでの選択も可能
- iを押すと現在の選択と未選択が反転
- aを押すと全選択
簡単に上から説明したいと思います。
- Choose Vue version
Vue.jsのバージョンを指定する(指定しない場合は最新) - Babel
JavaScriptのES6をES5にしてくれるコンパイラのBabelを使用する - TypeScript
TypeScriptを使用する - Progressive Web App (PWA) Support
PWAを使用する - Router
ルーティングを制御するためのVue Routerを使用する - Vuex
Vue.jsの状態管理パターンのライブラリであるVuexを使用する - CSS Pre-processors
SassやStylusなどのCSSプリプロセッサーを使用する - Linter / Formatter
コードの記述ルールを統一するLinterやFormatterを使用する - Unit Testing
ユニットテストを使用する - E2E Testing
E2E(End to End)テストを使用する
今回は全てを選択しました。
次はvueのバージョン指定です。
最新の3.xを選択します。
Vue CLI v4.5.15
? Please pick a preset: Manually select features
? Check the features needed for your project: Choose Vue version, Babel, TS, PWA, Router, Vuex, CSS Pre-processors, Linter, Un
it, E2E
? Choose a version of Vue.js that you want to start the project with (Use arrow keys)
❯ 2.x
3.x
そうするとcalass-style
を使用するのか聞かれます。
TypeScript
を使用する場合defineComponent関数
を使用して記述するそうですのでN
を入力して次に進みます。
? Use class-style component syntax? (y/N)
次はBabel alongside TypeScriptを使うか聞かれるのでY
を選択します。N
を選択した場合はインストール後にbabel.config.jsファイルがプロジェクトディレクトリに作成されません。
? Use Babel alongside TypeScript (required for modern mode, auto-detected polyfills, transpiling JSX)? (Y/n)
次はRouter
のモード設定です。
Y
を選択するとページのリロード無しに URL 遷移を実現するhistory.pushState API
を利用したルーターのhistory
モードを使うことができます。
? Use history mode for router? (Requires proper server setup for index fallback in production) (Y/n)
次はcssの選択です。
dart-sass
が推奨みたいですので、そちらを選びます!
? Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported by default): (Use arrow keys)
❯ Sass/SCSS (with dart-sass)
Sass/SCSS (with node-sass)
Less
Stylus
次はLint
とFormatter
周りの設定です。
良く聞く'ESLint + Prettier'を選択しました。
? Pick a linter / formatter config: (Use arrow keys)
❯ ESLint with error prevention only
ESLint + Airbnb config
ESLint + Standard config
ESLint + Prettier
TSLint (deprecated)
次はLint
をどのタイミングで実行するかを聞かれます。
? Pick additional lint features: (Press <space> to select, <a> to toggle all, <i> to invert selection)
❯◉ Lint on save
◯ Lint and fix on commit
ファイルのセーブ時のみで良いきがするのでこのまま次に進みます。
次にユニットテストで使用するツールを聞かれます。
? Pick a unit testing solution: (Use arrow keys)
王道のJest
を選択しました。
E2Eテストで使用するライブラリを選択します。
? Pick an E2E testing solution: (Use arrow keys)
❯ Cypress (Chrome only)
Nightwatch (WebDriver-based)
WebdriverIO (WebDriver/DevTools based)
自分はCypress
を選択しました。
次は設定ファイルを選択します。
? Where do you prefer placing config for Babel, ESLint, etc.? (Use arrow keys)
❯ In dedicated config files
In package.json
package.json
が王道だと思うので、そちらを選択します。
次に今回の設定を保存しておくか聞かれるので好きな方を選択します。
Save this as a preset for future projects? (y/N)
今回はN
を選択しました。
次にインストール方法です。
? Pick the package manager to use when installing dependencies: (Use arrow keys)
❯ Use Yarn
Use NPM
自分はYarn
を選択しました。
ここまで選択すると作成が始まります。
作成が完了したら起動してみます!
docker-compose up -d
http://localhost:8080/にアクセスしてみると
無事表示されました!!
やったー!!
終わり
簡単に構築ができましたね!!
VueCliが色々と指定ができるのでとても便利でしたし新鮮でした!
ここまで見てくださりありがとうございました!!
Discussion