大前端快閃:package.json文件知多少?

最近在公司某項目參與了一些前端工作,作爲後端摳腳大漢,改點前端細節磕磕絆絆,改點大前端、工程化、HTTP交互倒也還能做到柳暗花明

於是打算用後端程序猿的視角記錄一些{大前端}的知識快閃,也算是幫助讀者構建完整的全棧技能體系。

快閃一: paakage.json文件知多少

如果你使用了nodejs、npm項目、Angular項目等,你都會用到package.json文件,package.json文件是項目的清單文件,package.json在react項目開發和部署階段扮演了重要角色。

Package.json = 項目元信息+ 依賴的組件版本+ 腳本

請看下面的package.json示例文件:

{
  "name": "first-react-app",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^5.14.1",
    "@testing-library/react": "^11.2.7",
    "@testing-library/user-event": "^12.8.3",
    "react": "^17.0.2",
    "react-dom": "^17.0.2",
    "react-scripts": "4.0.3",
    "web-vitals": "^1.1.2"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}

庖丁解牛,深入分析。

Name: react項目的名稱

需要滿足以下約定:
① name 應使用小寫
② name應該少於214字符
③ 可以使用- 或者_

Version: 當前項目的版本,需要滿足以下約定
x.x.x - major.minor.patches

Private: 這是一個重要的屬性,主要用於防止私有代碼庫的意外發布。如果爲true,則不會發布到公開的npm生態系統。

Dependencies:包含一系列的node module + 生產環境依賴的版本,上面的例子中,我們需要以下版本的依賴:

"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-scripts": "4.0.3",

react版本:^17.0.2,意味着npm將安裝與“17.x.x”匹配的最新版本。

Scripts: 包含常見的[react命令腳本]的別名。

"scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  }

npm start將會執行 react-scripts start

Browserlist: 這個屬性用於在不同的前端工具之間共享目標瀏覽器和node.js版本。

eslintconfig:該屬性包括Create React App使用的可共享ESLint配置。

devDependeties: 這個屬性不在上面的示例代碼中,但它非常重要,因此想要囉嗦它:這個屬性列出了開發和測試所需的包。

以上是package.json文件中最重要的幾個屬性,下面囉嗦一下版本語法:x.x.x。

版本語法中有些特殊符號:

  1. ~ : Update patch release only. Eg. If you have 17.0.2 then 17.0.3 will be ok but 18.0.2 will not work.
  2. ^ : Can update Patch + minor. Not major version
  3. * : Can update all three Major + Minor + Patches versions
  4. >: Higher version than specify a version.
  5. >= : Equal and Higher than specify a version
  6. < : Less than specifying a version
  7. <=: Less or equal to specify a version

這就是快閃一:package.json知多少 的全部,現在是不是對於package.json文件的作用有了更深刻的認識了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章