npm學習總結

官方文檔:www.npmjs.cn/getting-sta…node

1 簡介

npm是一個包管理工具,包括三個部分:git

  • 網站:展現、查找各類包(代碼模塊,package)及其使用方法,設置參數以及管理npm使用體驗的平臺github

  • 註冊表(registry):是一個巨大的數據庫,保存了每一個包的信息數據庫

  • 命令行工具(CLI):用來直接使用npmnpm

2 安裝和使用

因爲npm是用Node.js寫的,所以要安裝Node.js來使用npm。 最快捷的安裝方式是從Node.js官網直接下載安裝Node.js,npm也會自動安裝。 安裝後運行如下命令以檢測是否安裝成功: $ node -v  // 查看Node.js版本 $ npm -v  // 查看npm版本json

安裝成功後,直接運行npm的各類命令來下載、刪除、發佈包等,例如安裝一個第三方包: $ npm install <package_name>  // 會在當前目錄下建立一個 node_modules 的目錄,並將下載的包保存在該目錄下。bash

3 package.json文件

該文件用來描述一個項目所須要用到的全部依賴包及其版本號。 必須包含name和version屬性:工具

運行如下命令來建立一個package.json文件:
$ npm init  // 建立一個package.json文件,建立過程當中會有一系列關於須要怎樣建立package.json的問題須要回答
$ npm init --yes/-y  // 傳建一個默認的package.json文件
複製代碼

一個默認的paskage.json文件:網站

{
  "name": "my_package",  // 當前目錄的名字,這個package的名字
  "description": "",  // README.md文檔內容的第一行,若是沒有 README.md則爲空字符串, README.md描述了這個項目的相關信息,有利於npm檢索
  "version": "1.0.0",  // 當前版本
  "main": "index.js",  // 入口文件
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/ashleygwilliams/my_package.git"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/ashleygwilliams/my_package/issues"
  },
  "homepage": "https://github.com/ashleygwilliams/my_package"
}
複製代碼

能夠設置字段值: $ npm set init.author.email "example@npmjs.com" 還能夠自定義npm init過程當中的問答:在家目錄下建立一個 .npm-init.js文件自定義問答內容,詳見:github.com/npm/init-pa…url

package.json使用dependencies和devDependencies兩個屬性用來描述項目所需依賴包:

{
  "name": "my_package",
  "version": "1.0.0",
  "dependencies": {  // 生產環境須要用到的依賴包
    "my_dep": "^1.0.0"  // 依賴包的版本號描述使用語義版本(SemVer)語法
  },
  "devDependencies" : {  // 本地開發環境須要用到的依賴包
    "my_test_framework": "^3.1.0"
  }
複製代碼

不一樣環境須要用到的依賴包安裝方法: $ npm install <package_name> --save  // 安裝到dependencies $ npm install <package_name> --save-dev  // 安裝到devDependencies

4 管理本地安裝的包

$ npm update  // 更新 $ npm uninstall <package_name>  // 刪除 $ npm uninstall --save lodash  // 刪除package.json文件中dependencies的依賴 $ npm uninstall --save-dev lodash  // 刪除package.json文件中devDependencies的依賴 $ npm install -g   // 安裝全局包,若是是命令行工具,應該要全局安裝 $ npm update -g   // 更新全局包 $ npm update -g  // 更新所有全局包 $ npm outdated -g --depth=0  // 檢測那些包須要更新 $ npm install npm@latest -g  // 更新npm $ npm uninstall -g   // 刪除全局包

5 發佈更新一個包

能夠將任何一個包含package.json文件的目錄發佈到npm中,只有添加到.gitignore或.npmignore中的文件不會被髮布到npm上。

5.1 發佈

首先要在官網註冊一個npm帳號,註冊成功後: $ npm login  // 登陸npm $ npm whoami  // 查看當前登陸用戶以檢查是否登陸成功

有兩點注意:

  • 包的名字要惟一而且和包的功能相關
  • 添加readme.md文檔便於被優先檢索到

$ npm publish  // 發佈到npm 發佈時若是提示「 You do not have permission to publish "<package_name>". Are you logged in as the correct user? :<package_name>」 就說明npm上已有同名的包了,須要修改package.json的name字段值。發佈成功後就能夠在官網上看到本身的包了。

5.2 更新包

開發完執行如下命令能夠更新包,注意因爲reamme.md文檔內容會展現在npm官網中該package的詳情頁面,在更新package時若是有須要也要同步更新readme。

$ npm version <update_type>  // 更新 update_type有三種類型:patch、minor、major(更多語義化版本的介紹詳見:docs.npmjs.com/about-seman…):

  • patch:會增長第三個版本號,表示向後兼容的bug修復
  • minor:會增長第二個版本號,表示向後兼容的新特性
  • major:會增長第一個版本號並重置後兩個版本號,變爲x.0.0,表示向後不兼容的重大變動

版本號更新後再執行 $ npm publish

to be continued...

相關文章
相關標籤/搜索