NPM 簡介
管理 Node.js 套件的系統,主要是用別人的 library 來做一些事情
想要用 NPM 套件的話
第一步 npm init

一直按enter就好

發現有個叫 package.json 的檔案
如果要使用套件的話
譬如:mathjs - npm

按照網站裡面打 npm install mathjs 就好
從 npm 5 以後,
--save就已經變成預設的選項了,因此 npm install 不加 --save 也是可以的喔,一樣會把資訊寫到 package.json 裡面去!

安裝完後發現多了兩個檔案 : node_modules資料夾、package-lock.json
打開package-lock.json來看

裡面會紀錄你安裝的套件
dependencies 你會用到A套件,但A套件會用到B套件,B套件會用到C套件D套件。所以他會把這個 dependencies 依賴關係存成檔案,有這個檔案,下次他會知道你要安裝什麼東西,就會比較快。
將 package.json 打開會發現dependencies多了一個 mathjs
也就是說,會自動把你用到的套件存在 package.json 裡

看一下node_modules資料夾裡面有什麼

發現有剛剛裝的 mathjs
其他是什麼?是 mathjs 用到的其他套件,會一併裝進來
- 通常傳到 Github 時,我們會忽略
node_modules這個資料夾
因為通常這個檔案會很大,如果你裝太多套件的話。
所以我們已經有package-lock.json和package.json這兩個檔案去紀錄我們這個專案裝的套件,所以我們不需要把node_modules裡面一大堆套件傳到上面,當同事把專案抓下來,他只要執行npm install,NPM 就會看有什麼dependencies然後把它裝起來。
- 如果新設一個子資料夾,並且安裝其他套件,用
ls -al看,怎麼什麼都沒有,不是說好會有個node_modules的資料夾和package.json???
這是因為,如果是在子資料夾裝的時候,他會在他的 parent 找,他在你的上層找發現有package.json,他會想這是個大專案,你是要裝在大專案的根目錄,所以會自動裝在根目錄那層,回去打開package.json是有發現剛剛裝的套件在dependencies裡面有出現,在下一層資料夾還是可以用,如果很堅持一定要放在下層資料夾,那就再下一次npm init,但其實是沒必要也不建議。
npm scripts
作用:寫好一些指令,當你用 mpm 執行你指令名稱,就會幫你執行後面的事

再舉例:
"start":"node index.js"
執行
npm run start
yarn:npm 以外的另一種選擇
由 Facebook 開發,長得很像 npm ,比較新的會用 yarn ,因為比較快
安裝官網說明
抓別人專案,第一步是
npm 是npm install
yarn 是yarn裝其他套件
npm 是npm install <套件名稱>
yarn 是yarn add <套件名稱>執行 scripts
npm 是npm run <指令名稱>
yarn 是yarn run <指令名稱>
其他 yarn 用途


