详解npm与package.json之间的联系

 更新时间:2023年07月26日 09:24:39   作者:一颗冰淇淋  
这篇文章主要为大家介绍了npm与package.json之间的联系图文示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

正文

在nodejs编写的脚手架项目中,npm是不可缺少的包管理工具,当使用npm初始化时,会生成package.json文件来对项目进行整体的管理和描述

以下是新建的练习项目中package.json文件,初始化项目之后,安装了axios

配置信息

以上每个配置信息分别对应的含义如下

(1)name * 项目名称 

(2)version * 当前版本号 

(3)description 是描述信息 

(4)main: 'index.js' 表示项目入口

(5)script 用于配置脚本信息 start/stop/test/restart 时, npm run start中的run可以省略

(6)author 作者 (发布时用到) 

(7)license 开源协议 (发布时用到)  

(8)dependencies 依赖 开发环境生产环境都需要

(9)devDependencies 开发时依赖的库, 生产环境不需要使用

package-lock.json文件

以上项目通过 npm install axios 为项目添加了axios,所以在dependencies下添加了aixos,安装的时候除了在node_modules会增加对应的依赖外,在package-lock.json会指明axios具体的版本以及axios内部的依赖,可以看到package-lock.json文件中,axios版本为0.21.1

但,有一点很奇怪,明明我只安装了 axios,为什么 package-lock.json 的dependencies 中还有一个 "follow-redirects",我们找到 node_modules 中安装的包文件,发现确实有axios和follow-redirects,打开axios的package.json文件,可以看到在axios的生产依赖 dependencies 中添加了 "follow-redirects",所以在安装 axios 的时候,自动帮我们安装了它所依赖的包,而 devDependencies 中依赖的包都没有安装,这也验证了一点,devDependencies只会被用于开发中,生产当中是不会安装的

执行 npm install

当我们拿到一个新项目的时候,通常是没有node_modules文件夹的,我们需要自行通过 npm install 来安装所有的依赖,当执行 npm install 的时候具体进行了哪些操作呢?

如图所示,当项目中存在package.json文件执行 npm install 的时候,首先会判断是否存在 package-lock.json 文件,没有 lock 文件的话,会根据 package.json 文件建立依赖关系,然后去存储 npm 各种工具的 registry 库中查找依赖并获取压缩包,此时会将压缩包缓存下来,然后将压缩包添加到 node_modules中,添加到 node_modules 后会生成 package-lock.json 中记录下载的版本和依赖关系。

如果存在 package-lock.json 文件,直接判断packge.json 所需依赖中与lock文件中依赖是否一致,不一致再重新建立依赖关系,一致的时候去缓存中查找缓存文件,没找到缓存文件就自行去 registry 库中下载压缩包。

以上就是详解npm与package.json之间的联系的详细内容,更多关于npm与package.json的联系的资料请关注脚本之家其它相关文章!

相关文章

  • autojs的nodejs打包成品app经验分享

    autojs的nodejs打包成品app经验分享

    这篇文章主要为大家介绍了autojs的nodejs打包成品app经验分享,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法

    NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法

    这篇文章主要介绍了NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • Node.js 应用探索文件解压缩示例详解

    Node.js 应用探索文件解压缩示例详解

    这篇文章主要为大家介绍了Node.js 应用探索文件解压缩示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Nodejs抓取html页面内容(推荐)

    Nodejs抓取html页面内容(推荐)

    这篇文章主要介绍了Nodejs抓取html页面内容的关键代码,另外还给大家附上了nodejs抓取网页内容,非常不错,对node.js抓取页面内容感兴趣的朋友一起学习吧
    2016-08-08
  • 利用node.js实现反向代理的方法详解

    利用node.js实现反向代理的方法详解

    在实际工程开发中,会有前后端分离的需求。为了平滑的完成前端请求到后端各个独立服务,需要一个中间件实现请求转发的功能,利用Nginx可以实现,在这里使用nodejs实现一个反向代理服务器。本文主要介绍了关于利用node.js实现反向代理的相关资料,需要的朋友可以参考下。
    2017-07-07
  • Node.js实战之Buffer和Stream模块系统深入剖析详解

    Node.js实战之Buffer和Stream模块系统深入剖析详解

    这篇文章主要介绍了Node.js实战之Buffer和Stream模块系统深入剖析详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • 基于node实现websocket协议

    基于node实现websocket协议

    这篇文章主要介绍了基于node实现websocket协议的相关资料,需要的朋友可以参考下
    2016-04-04
  • node.js中的fs.createReadStream方法使用说明

    node.js中的fs.createReadStream方法使用说明

    这篇文章主要介绍了node.js中的fs.createReadStream方法使用说明,本文介绍了fs.createReadStream方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下
    2014-12-12
  • node.js中的path.isAbsolute方法使用说明

    node.js中的path.isAbsolute方法使用说明

    这篇文章主要介绍了node.js中的path.isAbsolute方法使用说明,本文介绍了path.isAbsolute的方法说明、语法、使用实例和实现源码,需要的朋友可以参考下
    2014-12-12
  • nodejs中各种加密算法的实现详解

    nodejs中各种加密算法的实现详解

    这篇文章主要给大家介绍了关于nodejs中各种加密算法的实现方法,文中通过示例代码介绍的非常详细,对大家学习或者使用nodejs具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07

最新评论