package文件屬性
1 { 2 "name": "test-project", 3 "version": "1.0.0", 4 "description": "A Vue.js project", 5 "main": "src/main.js", 6 "private": true, 7 "scripts": { 8 "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", 9 "start": "npm run dev", 10 "unit": "jest --config test/unit/jest.conf.js --coverage", 11 "test": "npm run unit", 12 "lint": "eslint --ext .js,.vue src test/unit", 13 "build": "node build/build.js" 14 }, 15 "dependencies": { 16 "vue": "^2.5.2" 17 }, 18 "devDependencies": { 19 "autoprefixer": "^7.1.2", 20 "babel-core": "^6.22.1", 21 "copy-webpack-plugin": "^4.0.1", 22 "css-loader": "^0.28.0", 23 "eslint": "^4.15.0", 24 ………… 25 "webpack-merge": "^4.1.0" 26 }, 27 "engines": { 28 "node": ">= 6.0.0", 29 "npm": ">= 3.0.0" 30 }, 31 "browserslist": ["> 1%", "last 2 versions", "not ie <= 8"] 32 }
這里有很多東西:
version表明了當前的版本。
此屬性遵循版本的語義版本控制記法,這意味着版本始終以 3 個數字表示:x.x.x。
name設置了應用程序/軟件包的名稱。
名稱必須少於 214 個字符,且不能包含空格,只能包含小寫字母、連字符(-)或下划線(_)。這是因為當軟件包在 npm 上發布時,它會基於此屬性獲得自己的 URL。
description是應用程序/軟件包的簡短描述。main設置了應用程序的入口點。private如果設置為true,則可以防止應用程序/軟件包被意外地發布到npm。scripts定義了一組可以運行的 node 腳本。dependencies設置了作為依賴安裝的npm軟件包的列表。devDependencies設置了作為開發依賴安裝的npm軟件包的列表。
它們不同於 dependencies,因為它們只需安裝在開發機器上,而無需在生產環境中運行代碼。
engines設置了此軟件包/應用程序在哪個版本的 Node.js 上運行。browserslist用於告知要支持哪些瀏覽器(及其版本)。
package.json 文件還可以承載命令特有的配置,例如 Babel、ESLint 等。
每個都有特有的屬性,例如 eslintConfig、babel 等。 它們是命令特有的,可以在相應的命令/項目文檔中找到如何使用它們。
package文件更新
在 package.json 中,可以使用 semver 表示法設置要升級到的版本(補丁版本或次版本),例如:
tip:鑒於使用了 semver(語義版本控制),所有的版本都有 3 個數字,第一個是主版本,第二個是次版本,第三個是補丁版本。
- 如果寫入的是
〜0.13.0,則只更新補丁版本:即0.13.1可以,但0.14.0不可以。 - 如果寫入的是
^0.13.0,則要更新補丁版本和次版本:即0.13.1、0.14.0、依此類推。 - 如果寫入的是
0.13.0,則始終使用確切的版本。
調用npm update命令, 文件中的依賴的版本會被更新,會更新package.json文件和package-lock.json文件。(不會更新主版本。只會根據^、~去更新次版本或者補丁版本)
/////////////附加內容 開始/////////////
若要發覺軟件包的新版本,則運行 npm outdated。再所得的列表中,這些更新中有些是主版本。 運行 npm update 不會更新那些版本。 主版本永遠不會被這種方式更新,因為它們(根據定義)會引入重大的更改,npm 希望為你減少麻煩。
若要將所有軟件包更新到新的主版本,則全局地安裝 npm-check-updates 軟件包:npm install -g npm-check-updates
然后運行:ncu -u
這會升級 package.json 文件的 dependencies 和 devDependencies 中的所有版本,以便 npm 可以安裝新的主版本。
現在可以運行更新了:npm update
或者如果只是下載了項目還沒有 node_modules 依賴包,並且想先安裝新的版本,則運行:npm install
/////////////結束/////////////
更新了情況如下圖所示


查看npm包安裝的版本
npm list:查看所有已安裝的 npm 軟件包
npm list --depth=0:僅獲取頂層的軟件包(基本上就是告訴 npm 要安裝並在 package.json 中列出的軟件包)
npm view [package_name] version:要查看軟件包在 npm 倉庫上最新的可用版本
安裝npm包的舊版本
可以使用 @ 語法來安裝 npm 軟件包的舊版本:
npm install <package>@<version>:例如npm install cowsay@1.2.0會安裝 1.2.0 版本
全局的軟件包也可以這樣做:
npm install -g webpack@4.16.4
可能還有需要列出軟件包所有的以前的版本。 可以使用 npm view <package> versions:
卸載npm軟件包
如果使用 -S 或 --save 標志,則此操作還會移除 package.json 文件中的引用。
node_modules 文件夾使用 npm install <package-name>)的軟件包,從項目的根文件夾(包含 node_modules 文件夾的文件夾)中運行
如果使用 -S 或 --save 標志,則此操作還會移除 package.json 文件中的引用。如果程序包是開發依賴項(列出在 package.json 文件的 devDependencies 中),則必須使用 -D 或 --save-dev 標志從文件中移除:
npm uninstall -S <package-name> npm uninstall -D <package-name>
如果該軟件包是全局安裝的,則需要添加 -g 或 --global 標志:(可以在系統上的任何位置運行此命令,因為當前所在的文件夾無關緊要。)
npm uninstall -g <package-name>
