# moneta開発方法(mac os)
## 1. Homebrewのインストール
リンク先の記事の通りHomebrewをインストールする。
https://qiita.com/pypypyo14/items/4bf3b8bd511b6e93c9f9
インストール結果を確認する。
xcode導入時にgitもインストールされている。
```
$ brew -v
Homebrew 1.8.1
$ git -v
git version 2.19.1
```
> そもそもgitって何?を調べるなら、以下の記事がおすすめ。
> サルでもわかるgit入門
> https://backlog.com/ja/git-tutorial/intro/intro1_1.html
## 2. ソースコードの取得
引き続きターミナルから作業する。
ここでは`/Users/me/moneta`を作業フォルダとする場合の手順をしめす。
`git clone`コマンドはフォルダの作成とソースコードの取得を同時に行う。
```
$ cd /Users/me
$ git clone https://github.com/tamura2004/moneta.git
Cloning into 'moneta'...
remote: Enumerating objects: 782, done.
remote: Counting objects: 100% (782/782), done.
remote: Compressing objects: 100% (568/568), done.
Rremote: Total 782 (delta 467), reused 518 (delta 203), pack-reused 0eceiving
Receiving objects: 962), 6.83 MiB | 6.59 MiB/s
Receiving objects: 100% (782/782), 7.84 MiB | 5.59 MiB/s, done.
Resolving deltas: 100% (467/467), done.
```
### ソースコードの確認
ダウンロードされたフォルダの中身を確認する。
以下のようなソースコードが表示されれば成功である。
```
$ cd moneta
$ pwd
/Users/me/moneta
$ ls -la
total 446
drwxr-xr-x 1 papa 197121 0 Jan 27 08:34 .
drwxr-xr-x 1 papa 197121 0 Jan 27 08:34 ..
-rw-r--r-- 1 papa 197121 33 Jan 27 08:34 .browserslistrc
-rw-r--r-- 1 papa 197121 50 Jan 27 08:34 .firebaserc
drwxr-xr-x 1 papa 197121 0 Jan 27 08:34 .git
-rw-r--r-- 1 papa 197121 232 Jan 27 08:34 .gitignore
-rw-r--r-- 1 papa 197121 416 Jan 27 08:34 README.md
-rw-r--r-- 1 papa 197121 53 Jan 27 08:34 babel.config.js
drwxr-xr-x 1 papa 197121 0 Jan 27 08:34 dist
-rw-r--r-- 1 papa 197121 234 Jan 27 08:34 firebase.json
-rw-r--r-- 1 papa 197121 530 Jan 27 08:34 jest.config.js
-rw-r--r-- 1 papa 197121 1194 Jan 27 08:34 package.json
-rw-r--r-- 1 papa 197121 59 Jan 27 08:34 postcss.config.js
drwxr-xr-x 1 papa 197121 0 Jan 27 08:34 public
drwxr-xr-x 1 papa 197121 0 Jan 27 08:34 src
drwxr-xr-x 1 papa 197121 0 Jan 27 08:34 tests
-rw-r--r-- 1 papa 197121 699 Jan 27 08:34 tsconfig.json
-rw-r--r-- 1 papa 197121 536 Jan 27 08:34 tslint.json
-rw-r--r-- 1 papa 197121 52 Jan 27 08:34 vue.config.js
-rw-r--r-- 1 papa 197121 415237 Jan 27 08:34 yarn.lock
```
## 3. Node.jsのインストール
Node.jsはjavascriptの実行環境。コードのビルドや開発サーバの実行に必要。
https://nodejs.org/ja/
Homebrewでインストールする。
```
$ brew install node
(中略)
$ node -v
v 11.1.0
```
## 4. yarnのインストール
yarnは、Node.jsのパッケージ(外部ライブラリ)の管理ツール。
https://yarnpkg.com/lang/ja/
Homebrewでインストールする。
```
$ brew install yarn
(中略)
$ yarn -v
1.12.1
```
---
このyarnを使って、monetaが使用するパッケージをローカルにダウンロードする。
使用パッケージとバージョンは、package.jsonのdependenciesに記載されている。
これらがそれぞれ利用する子・孫パッケージもあるので、全て調査の上、yarn.lockファイルに書き出している。
```
"dependencies": {
"axios": "^0.18.0",
"firebase": "^5.8.0",
"register-service-worker": "^1.0.0",
"vue": "^2.5.17",
"vue-class-component": "^6.0.0",
"vue-property-decorator": "^7.0.0",
"vue-router": "^3.0.1",
"vuefire": "^2.0.0-alpha.20",
"vuetify": "^1.3.15",
"vuex": "^3.0.1",
"vuex-easy-firestore": "^1.28.0"
},
```
### axios
http通信のパッケージ
https://github.com/axios/axios
### firebase
google提供のPaas環境
https://firebase.google.com/?hl=ja
### vue
アプリケーションフレームワーク
https://jp.vuejs.org/v2/guide/
### vuetify
マテリアルデザインの画面部品
https://vuetifyjs.com/ja/getting-started/quick-start
---
これらのパッケージをyarn installでダウンロードする。
yarn.lockファイルがあるなら、それに基づきダウンロードを行っている。
```
$ yarn install
(中略)
```
若干warningが出るが、errorにならないならとりあえず大丈夫。node_modulesというサブフォルダが作成され、取得したパッケージが配置される。
このフォルダ名や、配置時のルールは共通仕様であるので、プログラム内部からimport文で取り込むことが可能。
## 5. 開発サーバの起動
フレームワークを構成する各種コマンドは、先ほどnode_modules配下にダウンロードされているが、パスを通しておらずこのままでは実行できない。
yarnは開発に必要なコマンドを、node_modulesから探して実行する機能もある。
package.jsonの以下の部分である。
```
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint",
"test:unit": "vue-cli-service test:unit"
},
```
`vue-cli-service serve`が開発サーバの起動コマンドである。
```
$ yarn serve
(中略)
DONE Compiled sccessfully in 9989ms
No type errors found
No lint errors found
Version: Typescript 3.2.2 tslint 5.12.0
Time: 8127ms
App running at:
- Local: http://localhost:8080
```
## 6. ブラウザでの表示
ブラウザから、http://localhost:8080に接続する。
monetaのトップページが表示されれば成功である。