解读package.json

131 阅读2分钟

1.package.json文件(详细内容在同路径下的文件中可以查看)

  • main字段:设置入口文件。在项目中引入axios等库时,会先查看node_modules中axios文件下是否存在package.json,然后查看里面的main字段对应的入口文件,然后引用该文件

  • script字段: 设置脚本运行的指令

    • "script":{"start":"node ./src/main.js"} 然后再终端中输入npm run start 即可运行程序,当然start可以写成其他的
  • dependencies 生产和开发都依赖

    • 开发项目过程中会使用到第三方库 这些就是生产依赖
    • 一般上传项目到github是不会上传node_modules文件的,所以当拿到新的项目时都会通过npm install 下载项目所依赖的第三方库
    • npm install 下载开发和生成过程都依赖的库
  • devDependencies 只有开发阶段依赖的库

    • npm install xxx --save-dev 下载只有开发依赖的库
    • npm install xxx -D 是--save-dev的简写 image-2.png image.png
  • 依赖库的 版本规范 x.y.z

    • axios:1.4.0
    • axios:^2.4.6/~2.4.6
    • z表示修复bug后的版本 image-1.png
  • 全局安装(-g)、局部安装

    • 全局安装的一般都是webpack、yarn等工具
    • 局部安装的一般都是axios、pinia等第三方库

2.package-lock.json文件

  • npm install 第三方库(首先不存在node_modules文件夹,但是存在package.json和package-lock.json)

    • 防止同版本下载多次,npm设计一个Cache缓存下载过的第三方库
    • 当新下载第三方库时,会在缓存中查找,如果存在则拿到该包并解压第三方库,类似于从Cache中copy一个第三方库过来
    • 找库时会从package-lock.json中找该库的标识符integrity,然后再去Cache中找
    • integrity是package-lock.json中库的标识
    • package-lock.json中会明确所依赖库的明确版本 image-3.png

    image-4.png

    • 清除缓存 npm cache clean
    • 获取缓存位置 npm config get cache
    • image-5.png
  • yarn 部分指令 image.png

致谢:以上总结都是看coderwhy老师的课