package-lock.json須要提交到git?

package.json 與 package-lock.json

二者都是項目的配置文件,聲明瞭項目依賴的 npm 包及包的版本。前端

package.json

package.json 包含如下內容:vue

  • 項目名稱
  • 項目版本
  • 做者
  • 項目許可證
  • 執行命令
  • 執行依賴
  • 開發依賴
項目名稱 項目版本 做者 項目許可證 執行命令 執行依賴 開發依賴
name version author license scripts dependencies devDependencies

這裏並非全部的內容,只是列舉了一些經常使用的字段,詳細可參考官方文檔react

package-lock.json

package-lock.json 在執行 npm i 的時候生成,用來記錄實際安裝的 npm 包的來源和版本。能夠鎖定安裝時的包的版本,須要上傳到 git,確保你們使用的包版本一致。jquery

dependencies 與 devDependencies 的區別

dependencies 聲明執行期須要的依賴,好比 echarts、jquery、axios、vue、react。 devDependencies 聲明開發時所須要的依賴,好比:gulp、webpack、jest。webpack

tips

    1. npm i 安裝依賴時使用不一樣的參數,依賴增長到的位置不一樣:
      dependencies devDependencies
      npm i xx npm i xx --save-dev
    1. 執行 npm i 時會安裝哪些依賴? 執行 npm i 時會安裝 dependencies 和 devDependencies 裏面的全部依賴
    1. 既然已經在 package.json 中聲明瞭依賴,爲何還須要 package-lock.json?
    • package.json 裏只是聲明瞭部分包的版本,並非全部包。
    • 咱們除了須要固定大的依賴包版本,還須要固定依賴的依賴。
    1. 版本前的符號含義 先看一下版本號的含義:
    version: a.b.c
    複製代碼

    a - 主要版本,b - 次要版本,c - 補丁版本。ios

    符號 含義 規則
    1.0.0 1.0.0 精確匹配版本
    ^1.2.3 1.2.3 <= version < 2.0.0 不容許第一個非零數字(從左到右)的更新
    ^0.1.2 0.1.2 <= version < 0.2.0 同上
    ^1.0.0 1.0.0 <= version < 2.0.0 同上
    ~1.2.3 1.2.3 <= version < 1.3.0 只更新補丁版本,不更新次要版本
    ~1.0.0 1.0.0 <= version < 2.0.0 沒有指定次要版本,容許更新次要版本
    =1.0.0 1.0.0 <= version 小於等於當前版本
    latest 獲取最新版本 使用最新版本
    1. 如何鎖定包的版本
    • npm i --save-exact/-E
      僅對 package.json 中的包生效
    • 依賴中聲明的版本號不加符號
      僅對 package.json 中的包生效
    • npm-shrinkwrap
      生成鎖定的依賴樹文件
    • 使用 yarn 代替 npm
      yarn 自動生成 yarn-lock 文件

總結

這一篇提到了 yarn,後面咱們來看一下 yarn 和 npm 的區別。 前端開發並不難,難的是不能堅持下去,面對困難別退縮,滴水能夠穿石。關注小姐姐,一塊兒學一學。git

相關文章
相關標籤/搜索