---
# System prepended metadata

title: 'VueJS 2.0 教學筆記: 建置開發環境並瞭解基礎Git flow'
tags: [Git, ElementUI, VueJS]

---

---
title: 'VueJS 2.0 教學筆記: 建置開發環境並瞭解基礎Git flow'
disqus: hackmd
---

VueJS 2.0 教學筆記: 建置開發環境並瞭解基礎Git flow
===

綱要

[TOC]

安裝Git
---

**Mac OSX**

Mac有內建Git的關係，可以不需要額外安裝Git主程式、也不需做任何設定

**Windows**

安裝檔下載網址：https://git-scm.com/download/win

Win 10還需要設定系統環境變數的關係，安裝好Git之後我們必須進入到電腦的系統環境變數去新增 bin 位置，首先進入到「設定」，然後搜尋「系統環境變數」，點進會看到這個視窗：

![](https://i.imgur.com/UJXbJK9.png)

接著在系統變數處按下編輯

![](https://i.imgur.com/6bUoQd3.png)

到Git安裝好的目錄下找出bin的路徑，複製後貼到最後一個分號「;」的後面，確認後讓電腦重新開機。

重開機後打開終端機，也就是命令提示字元（一定要以系統管理員身份開啟）後輸入 `git` 

![](https://i.imgur.com/69ZFJ23.png)

看到這串訊息後代表Git安裝成功了。




建立屬於自己的Git版本控制環境來連動Github
---

**1.申請一組Github帳號並新建立一個專案**

![](https://i.imgur.com/drTMfaX.png)

按下New就會進入以下新增畫面

![](https://i.imgur.com/odUd1Gy.png)


1. 建立一個名為 **vue_2020** 的專案
2. Description可以略過不填，權限設置付費才能使用Private的關係，預設是Public就好
3. Add license選擇「MIT」

**2. 選用Git軟體來進行版本控制**

https://www.syntevo.com/smartgit/

SmartGit是個簡潔、功能又齊全的Git版本控制圖形介面軟體，所有操作可以在同一個畫面裡面完成，不像 [GitKraken](https://www.gitkraken.com/) 或 [SourceTree](https://www.sourcetreeapp.com/) 那般外觀設計精美，卻也非常強大且容易使用，學習成本低。

![](https://i.imgur.com/m1NheHm.png)

如果你還沒打算付費使用的話，可以在安裝時選擇試用或者非商用(非商用每次啟動都有三十秒的告示)，日後有興趣再來取得授權。

![](https://i.imgur.com/dfR91Tt.png)

安裝好SmartGit後 (過程都用預設設定) ，在電腦中任意位置建立一個新的目錄叫做`web`，回到剛剛Github我們建立好的 **vue_2020** 專案頁面，並且按下`Clone or Download` 的按鈕，就會看到一串網址，將它複製下來。

![](https://i.imgur.com/FJz2ofD.png)

在SmartGit的畫面最上方主選單選擇 `Repository -> Clone` 並貼入剛才的HTTPS網址後往下一步

![](https://i.imgur.com/MB0EbdV.png)

保持這個設定繼續往下

![](https://i.imgur.com/olP6xC3.png)

注意路徑必須和你的專案同名喔，確認後按下`Finish`

![](https://i.imgur.com/X9rxzaz.png)

假如你使用的是非商用免費授權版，每次啟動都會看到這個畫面，30秒後可以關閉它
現在專案已經透過 `git clone` 的方式下載到你的local端囉，之後有任何檔案變更都會反映在畫面上，直到你 Commit 並 Push 上去 Github。

![](https://i.imgur.com/bYVzI3k.png)

左下角這裡會顯示你本地端有什麼分支以及主線(master)、還有遠端來源的所有分支

![](https://i.imgur.com/bBG5eQ1.png)

現在我們來開一個叫做 `day_1` 的分支，滑鼠點兩下master，或者在確認箭頭是指著master的狀態下，右鍵選取`Local Branches` 的字樣，並選擇 `Add branch`，輸入 `day_1` 按下確認，畫面上就會出現這個名稱的分支。

![](https://i.imgur.com/ucZqZHJ.png)

![](https://i.imgur.com/6PCBlFB.png)


因為剛開啟的分支，遠端Github還不會知道你有這個分支，所以繼續用右鍵點一下分支名稱，選擇`Push`，Git就會把這個分支推送到專案來源，畫面上 `day_1` 此時會變成 `day_1 = origin`，代表遠端已經儲存了你的分支。

![](https://i.imgur.com/hba1XsS.png)

![](https://i.imgur.com/SsBbFWv.png)

現在到Github專案頁面上已經可以看見剛剛的 `day_1` 分支被記錄進去了

---

安裝NodeJS
---
下載NodeJS：https://nodejs.org/en/

由於Gulp任務管理工具是Base on NodeJS的關係必須另外安裝NodeJS，盡量使用標示LTS的穩定版本

![](https://i.imgur.com/4GGiaHQ.png)

安裝結束後在終端機下鍵入 `npm` 就會看到這組訊息，代表已經安裝成功

![](https://i.imgur.com/CmwWrJ4.png)

MAC OSX 權限設定調整
---

假如你上課用的電腦是MAC OSX環境，而從來沒有取得過寫入系統的管理權限，務必參考以下的做法。因為我們在安裝任何需要global全域形式的NodeJS套件都會動用到系統環境資源。

![](https://i.imgur.com/5HsY9qZ.png)

假如沒有設定系統權限，`npm install -g` 的指令就會像這樣顯示失敗

我們可以先用權限檢查指令 `ls -l /usr/local` 來查看目前電腦使用者是否擁有寫入權限：

![](https://i.imgur.com/wb2wnTi.png)

OSX使用的是Linux指令，最左側的訊息表示：

```
d : 目錄 (dir)
r : 讀取權 (read)
w : 寫入權 (write)
x : 執行權 (execute)
```
現在我們可以用這個指令來改寫權限，讓藏在/usr/local/中的node_modules擁有寫入權限：

`sudo chown -R $USER /usr/local/lib/node_modules`

==注意，sudo指令會需要輸入這台電腦的登入密碼，密碼鍵入時不會顯示任何內容，不是當機喔==


---

初始化專案以及排除背景作業檔案
---

到這應該就能讓 NodeJS 正常安裝全域模組了，接下來要一邊安裝所需套件、一邊增加需要在 `.gitignore` 排除的項目，讓 node_module 和一些背景作業的檔案被變更時不會進入 git 版控。

從終端機裡面進入我們的`vue_2020`

假如你是在 `user/` 下(通常是顯示使用者名稱)的話，輸入 `cd web/vue_2020`
如果是用Win10的同學，你想在D槽進行開發的話，打開終端機時輸入`d:`就會跳轉到D槽

**1. 製作packge.json**

進入web目錄中的 `vue_2020` 後，繼續輸入`npm init`

![](https://i.imgur.com/FE97iCK.png)

接下來畫面上會問你一些設定名稱，()代表的是預設值，也可以不在這個階段變更，後面用VSCODE開啟`package.json` 也能修改

看到生成了一個JSON object就輸入yes確認，NodeJS會在目錄裡建立package.json這個檔案。

**2. 安裝VueJS與相依套件**

確認你的終端機路徑在vue_2020後按照以下指令下載安裝套件：

`npm install vue`
`npm install -g @vue/cli`

**3. 創建一個VueJS專案**

回到 **vue_2020** 的上一層目錄 **web**，根據 vue-cli 的document，創建指令為：

`vue create vue_2020`

接下來終端機畫面上就會要求你設定一些套件選用設定

使用空白鍵選取必要的項目後按下 Enter：

`Babel`
`Router`
`Vuex`
`CSS-Processors`
`Linter-Formatter`

接下來會問你Router要不要預設為HISTORY模式，選NO

![](https://i.imgur.com/ZXUsN5J.png)

CSS預處理器選node-sass或者dart-sass都可以

![](https://i.imgur.com/qkKDNKS.png)

ESLint語法檢查工具選Airbnb原則，如果你討厭動不動就出現語法警告，一開始建置專案就不裝Liner

![](https://i.imgur.com/4vhfLZY.png)

Linter on Save，儲存時檢查語法，下一個畫面選擇Babel、ESLint等設定檔選擇另開設定檔

![](https://i.imgur.com/RNVnn7x.png)

要不要為了這次的設定做成一個Preset預設集，要就會請你輸入一組名稱

接下來等它跑完即可

如果都安裝好了，此時你應該會發現SmartGit上的檔案變更有幾千隻，先不動它。

**4. 安裝 elementUI**

`npm i element-ui -S`


我們先用VSCODE打開專案目錄：

![](https://i.imgur.com/bZzJnvZ.png)

`.gitignore`，這是個專門讓git辨識的規則檔，因為node_modules通常檔案都非常大，所以不會直接丟上Github，而是用package.json記錄安裝了哪些套件，之後換到別的開發裝置上只需要 `npm install` 這個指令，就會自動重新安裝回來。


`.DS_Store` 是Mac OSX特有的目錄的自定義屬性記錄檔，平常也算是個根本用不到的東西，所以在這會一併排除。

你會發現原本SmartGit上幾千個檔案變更消失了，因為 `.gitignore` 有順利運作的關係。

**5. 匯入elementUI到VueJS**

main.js 的設定：

![](https://i.imgur.com/oQTFqyy.png)


```javascript=
import Vue from 'vue';
import ElementUI from 'element-ui';
import App from './App.vue';
import router from './router';
import store from './store';
import 'element-ui/lib/theme-chalk/index.css';

Vue.config.productionTip = true;

Vue.use(ElementUI);

new Vue({
  router,
  store,
  el: '#app',
  render: (h) => h(App),
}).$mount('#app');
```

完成後，在VSCODE的終端機輸入啟動指令：

`npm run serve`

看到這個畫面表示成功囉

![](https://i.imgur.com/vDDPpVx.png)



**6. 第一次的Git Push**

最後，我們可以將所有變更的檔案，全部選取起來並且按下右鍵候選擇`commit`

commit 一定要輸入本次變更的註解，這是養成開發寫註解的好習慣之一，也可以讓同個專案的同事知道你做了些什麼。

![](https://i.imgur.com/D0O9B2Q.png)

下了commit後，這些變更就正式儲存到你的本地專案中了，不會因為斷電、關機不正常等現象導致做好的工作階段消失。此時你會看見 day_1 這個分支顯示成 `day_1 1> origin`，表示你本地端有一個commit比遠端來源還要新。

對著分支名稱按下右鍵，選擇Push，兩邊同步後就會顯示 `day_1 = origin`

---

本日後記
---

覺得步驟繁多又有點複雜嗎？

正常，大家都是這樣過來的。

如果這個過程中你都沒什麼障礙的話，恭喜你！你已經跨越了設計師的舒適圈，朝著現代開發主流模式前進，也做到了大多設計師做不到的事情了！這就是提升價值的一種表現。

但如果你有那麼一點小問題也別著急，記錄下你的問題直接問老師都沒關係。

###### tags: `VueJS` `ElementUI` `Git`