本來在看webpack配置的時候蜒车,發(fā)現(xiàn)里面有一些package.json的東西不太眼熟,就順道去隔壁nodejs了解了下package.json饲帅。
這里主要介紹了一些npm操作包瘦赫,以及package.json的屬性、作用的介紹耐薯。
本著以自己的理解,參考網(wǎng)上大佬的資料和說明丝里。了解了解
npm 是一個包管理器曲初。
npm的安裝與更新
npm 是依附與node.js的,我們下載好node.js杯聚,npm就自動安裝好了臼婆。
node -v
//打印:v8.x.x
npm -v
//打踊仙堋:5.x.x
npm更新也很方便和簡單颁褂,直接使用命令更新
npm install npm -g
-g 表示全局安裝
package.json文件
package.json 用于管理本地安裝npm包故响。一般有如下作用:?
1. 作為一個描述文件,描述項目依賴哪些包?
2. 讓構(gòu)建更好地與其他開發(fā)者分享颁独,便于重復(fù)使用
package.json創(chuàng)建?
使用npm init即可在當(dāng)前目錄創(chuàng)建一個package.json文件彩届。
npm init
創(chuàng)建package.json的時候,一般會讓填寫一些基礎(chǔ)屬性的信息誓酒,比如名稱版本等樟蠕。此時可以用過npm init --yes 跳過填寫直接創(chuàng)建默認(rèn)名稱。
package.json內(nèi)容介紹?
package.json至少會包含兩部分內(nèi)容:?
1. name 名稱丰捷。要求全部小寫坯墨,無空格,可以使用下劃線或橫線?
2. version 格式要求為x.x.x 病往,并且負(fù)荷'語義化版本規(guī)則'
其他內(nèi)容:
description: 描述信息
main: 入口文件。一般是index.js
scripts: 支持腳本骄瓣,默認(rèn)一個空的test
keywords: 關(guān)鍵字停巷,有助于使用npm search時發(fā)現(xiàn)你的項目
author: 作者信息
license: 默認(rèn)是MIT
bugs: 當(dāng)前項目的一些錯誤信息
使用npm init來設(shè)置一些默認(rèn)值
npm set init.author.name "chl"
npm set init.author.email "xxx@yy.com"
指定依賴包?
在package.json中指定項目依賴的包,然后用npm install將這些包下載下來榕栏。
包的依賴方式有兩種:?
1. dependencies: 在生產(chǎn)環(huán)境中徐要用到的依賴?
2. devDependencies: 在開發(fā)畔勤、測試環(huán)境中用到的依賴
{
? ? "devDependencies": {
? ? ? ? "webpack": "^4.10.2",
? ? ? ? "webpack-cli": "^3.0.1",
? ? ? ? "webpack-dev-server": "^3.1.4"
? ? },
? ? "dependencies": {
? ? ? ? "vue": "^2.5.16"
? ? }
}? ?
npm install PackageName 安裝"dependencies"模式的包?
npm install PackageName --save-dev 安裝"devDependencies"模式的包
Semantic versioning(語義化版本規(guī)則)?
npm的"Semantic versioning",簡稱"Semver"(會不會有人拿這個名稱來做面試坑人呢=_=)扒磁,中文名稱就叫"語義化版本規(guī)則"庆揪。?
那么具體指啥呢?比如我們在package.json中的dependencies的內(nèi)容妨托,有些是"xx": "^3.3.1"缸榛,這里的^或者*等這種,就是這東西兰伤。
使用案例:建設(shè)我們依賴一個包的當(dāng)前版本是1.0.4
如果只打算接受補丁版本更新(最后一位改變)内颗,寫法可以如下:
"xx": "1.0"
"xx": "1.0.x"
"xx": "~1.0.4"
如果接受小版本更新(第二位改變),寫法如下:
"xx": "1"
"xx": "1.x"
"xx": "^1.0.4"
如果接受大版本更新
"xx": *
"xx": x
package安裝?
使用npm install默認(rèn)會安裝package.json中dependencies和devDependencies里所有的內(nèi)容敦腔。
如果指向安裝dependencies中的內(nèi)容均澳,可以使用--production
npm install --production
安裝指定版本的package?
npm install默認(rèn)會安裝最新版本,可以使用如下方式安裝指定版本的包
npm install xx@2.1.3
//或
npm install xx@">=2.1.3 <2.1.8"
更新package?
查看包是否有新版本
npm outdated xx
//若無則不打印
如果有新版本的包符衔,可以使用update更新
npm update xx
下載后的package可以在node_module文件夾中找到找前,在Node.js項目中,可以用require(xx)來使用