---
# System prepended metadata

title: 零、 遲來的第三周-有關 eslint
tags: [2020七月第五週, Lidemy心得, JS102, JavaScript續, 進度筆記, 7/27, 7/28, JavaScript]

---

# 零、 遲來的第三周-有關 eslint
###### tags: `JS102` `JavaScript續` `2020七月第五週` `進度筆記` `Lidemy心得` `7/27`

ES6 是 JS 的新版標準使用語法，ALG 101 上到內建函式， Unit 5 和 6 ， Jest 跟測試有關。

---

## 零之 1 、  npm 簡介
###### tags: `JS102` `JavaScript` `2020七月第五週` `進度筆記` `Lidemy心得` `7/28`

重要的 Node Package Manager ， 管理 Node.js 程式套件(安裝 Node.js 就會附加安裝)，在 JS Node.js 的環境 CLI 用 `npm-v` 即可看到版本 : ![](https://i.imgur.com/TifYm8S.png)  

`npm init` :  會產生 package.json 檔案。

---

在 CLI 介面下安裝 `npm install mathjs` ， 會出現安裝完成:

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

---

有許多相關數學套件，在 package-lock.json 檔案內會看到紀錄套件的內容(假如有安裝)，而 mathjs 會出現在 package.json 、 package-lock.json 以及 node_modules 檔案內，會從 node_modules (這不需要版本控制，純下載檔案)內引入到 library ， 檔案傳上 GitHub 時不會把 package-lock 也一併傳上去。

另一個 library `npm install loadash` 會自動幫你引入裝在 package.json 、 package-lock.json 以及 node_modules 有主目錄的檔案內，如果呼叫 lodash 的話會發現它是一個大物件，有一堆 function :

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


```
var lodash = require('lodash')

console.log(lodash.merge)
```

如果第四周裝下去可能會影響到 GitHub 的 package.json 。

---

## 零之 2 、 提高 code 品質- eslint
###### tags: `JS102` `JavaScript` `2020七月第五週` `進度筆記` `Lidemy心得` `7/28`

eslint : es 是 ECMAScript 一種 JS 標準 ， lint 是檢查程式碼的工具; 可以透過其學習 ES6 語法、提高 code 品質，檢查語法。

而在這次第四期導師實驗課程已經裝好了，移到 mentor-program-4th-b9720012 (master) 下 ， 使用 `npm install` 會幫你安裝:

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

可以到 mentor... 下的 package.json 或是 GitHub 的 mentor... 專案下的 package.json 看裡面加入了甚麼東西。

---

eslint 的 git hooks 是在 git 之前會幫你執行一些 function ， 確定有檢查通過才會 commit ， 在 hw 的地方會有 precommit ， 然後 Running linters 檢查檔案，有沒有宣告變數、少了括號，或是統一的 coding style ...等，如果有錯誤就看訊息更正，然後再 commit ，如果要停用 eslint 就可以在 code 前面加入: 
```
/* eslint-disable no-unused-vars */
```

以及把不想要的規則給停掉，還有這個:

```
// eslint-disable-next-line
```
__真的不行的時候再用，一開始不熟可以熟悉規則。__

---

可以從 package.json 檔案內看到檢查範圍是啥:
![](https://i.imgur.com/nIDLco7.png)

例如 hw 底下所有的 .js 檔案都會被檢查到。

warning 就不用修， error 就看錯誤訊息來修，從最後面行號修到前面，確保行號不會變，如果修到行號有改變就再 commit 一次來看錯誤訊息，例如宣告物件後加一個 , 加一個新的屬性比較容易。

修過語法後丟到 LIOJ 應該也是可以過。

---

參考資料:

[Airbnb JavaScript Style Guide() {一份彙整了在 JavasScript 中被普遍使用的風格指南。](https://github.com/jigsawye/javascript)

[[筆記] ESLint 學習筆記](https://pjchender.github.io/2017/09/26/%E7%AD%86%E8%A8%98-eslint-%E5%AD%B8%E7%BF%92%E7%AD%86%E8%A8%98/)

[[JS] 使用 ESLint 提高程式碼品質](https://larrylu.blog/improve-code-quality-using-eslint-742cf1f384f1)

[Eslint 筆記](https://vagrantpi.github.io/2017/08/03/eslint/)

[ESlint 的使用隨手筆記](https://medium.com/@hugh_Program_learning_diary_Js/eslint-%E7%9A%84%E4%BD%BF%E7%94%A8%E9%9A%A8%E6%89%8B%E7%AD%86%E8%A8%98-73ae8938fa01)