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

相关文章
相关标签/搜索