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 用途