官方文檔:www.npmjs.cn/getting-sta…node
npm是一個包管理工具,包括三個部分:git
網站:展現、查找各類包(代碼模塊,package)及其使用方法,設置參數以及管理npm使用體驗的平臺github
註冊表(registry):是一個巨大的數據庫,保存了每一個包的信息數據庫
命令行工具(CLI):用來直接使用npmnpm
因爲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
該文件用來描述一個項目所須要用到的全部依賴包及其版本號。 必須包含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
$ 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 // 刪除全局包
能夠將任何一個包含package.json文件的目錄發佈到npm中,只有添加到.gitignore或.npmignore中的文件不會被髮布到npm上。
首先要在官網註冊一個npm帳號,註冊成功後: $ npm login // 登陸npm $ npm whoami // 查看當前登陸用戶以檢查是否登陸成功
有兩點注意:
$ 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字段值。發佈成功後就能夠在官網上看到本身的包了。
開發完執行如下命令能夠更新包,注意因爲reamme.md文檔內容會展現在npm官網中該package的詳情頁面,在更新package時若是有須要也要同步更新readme。
$ npm version <update_type> // 更新 update_type有三種類型:patch、minor、major(更多語義化版本的介紹詳見:docs.npmjs.com/about-seman…):
版本號更新後再執行 $ npm publish
to be continued...