package.json指南及其常用命令


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 }
View Code

這里有很多東西:

  • 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 等。

每個都有特有的屬性,例如 eslintConfigbabel 等。 它們是命令特有的,可以在相應的命令/項目文檔中找到如何使用它們。

 

package文件更新

在 package.json 中,可以使用 semver 表示法設置要升級到的版本(補丁版本或次版本),例如:

tip:鑒於使用了 semver(語義版本控制),所有的版本都有 3 個數字,第一個是主版本,第二個是次版本,第三個是補丁版本。

  • 如果寫入的是 〜0.13.0,則只更新補丁版本:即 0.13.1 可以,但 0.14.0 不可以。
  • 如果寫入的是 ^0.13.0,則要更新補丁版本和次版本:即 0.13.10.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 文件中的引用。

  npm uninstall <package-name>:卸載之前在本地安裝(在 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>
 
         


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM