首页 > 编程语言 >npm(Node Package Manager) 学习记录

npm(Node Package Manager) 学习记录

时间:2024-04-09 22:31:25浏览次数:26  
标签:npm Node 依赖 package Package js json 安装

一、npm 是什么

npm 是 Node.js 包管理器。是一个命令行工具,用于安装和管理 Node.js 项目中的代码库和工具。
npm 允许从 npm 注册表(一个大型的软件包数据库)中搜索、安装、更新和删除软件包,并处理这些软件包的依赖关系。
npm 已经成为 Node.js 生态系统中不可或缺的一部分,通过 npm, 可以快速地构建、扩展和维护复杂的 Node.js 应用程序。

二、npm 主要功能

1、包管理

npm 可以方便地安装、更新和删除 Node.js 软件包。这些软件包可以是库、框架、工具或者任何其他的 Node.js 代码。

2、依赖管理

npm 能够处理项目中的依赖关系。通过在项目的 package.json 文件中列出所需的依赖及其版本,npm 可以确保在不同的环境中安装正确的版本的依赖

3、脚本执行

npm 允许定义和执行自定义脚本,这些脚本可以在项目的声明周期中的不同阶段(安装、测试、构建等)自动运行

4、发布包

开发者可以使用 npm 发布自己的软件包到 npm 注册表中,供他人使用

5、npm 注册表

npm 注册表是一个全球性的在线存储库,其中包含数以万计的软件包。可以通过 npm 搜索这些软件包,并安装到本地项目中。

三、npm 中文网 和 npm 官网

https://npm.nodejs.cn/about-npm
http://www.npmjs.com
https://www.npmjs.cn

四、npm 安装

安装 Node.js 后,npm将同步一起安装。
在 https://nodejs.cn/download/ 下载对应系统对应版本的安装

(不同的 node 版本,可以使用 nvm 来管理安装与切换)

通过命令 node -vnpm -v 来验证是否安装成功

是否安装成功

五、npm 常用操作

1、初始化一个新的项目 npm init / npm init -y

主要用于初始化一个新项目并快速生成一个 package.json 文件

npm init -y
  • 创建 package.json 文件: 在命令行当前目录中创建一个 package.json 文件。这个文件是 Node.js 项目的核心文件,用于储存项目的元数据,如项目名称、版本号、描述、入口点、脚本命令和依赖等。
  • 使用默认值填充 package.json 文件:因为使用了 -y/-yes 选项, npm init 命令会使用默认值来填充 package.json 文件中的各个字段,而不需要手动逐行填写。默认项目名称为当前目录名称,版本号默认为1.0.0,描述为空字符串。
  • 设置入口点:package.json 文件中的 main 字段通常设置为项目的入口点,默认设置为 index.js,可以修改这个值。
  • 生成其他字段:package.json 文件中还包含其他字段,如 script 字段,用于定义自定义脚本命令,dependencies 字段,用于列出项目的依赖项等。

2、安装一个依赖包 npm i XXX / npm install XXX

npm i vue
  • 安装依赖包:该命令会从 npm 注册表中下载并安装名为 vue 的包及其所有依赖项。这些依赖项通常是其他 Node.js 包,被 vue 包用作其正常工作的基础。
  • 本地安装: 会在当前项目的 node_modules 文件夹中创建 vue 包的本地副本。没有使用 -g 选项,该包仅对该项目可用。
  • 更新 package.json:如果使用 --save 或者 --save-dev 参数,npm 会自动更新项目中的 package.json 文件。会在 dependencies(生产依赖)和 devDependencies(开发依赖)字段中添加 vue 包及其版本号。这样,其他开发者或未来的构建过程可通过 package.json 文件并运行 npm install 来安装所有必要的依赖项。
  • 管理依赖关系:npm 能够处理复杂的依赖关系,确保安装正确的版本的包,并解决可能存在的版本冲突。
  • 执行安装脚本: 如果 XXX 包在其 package.json 文件中定义了安装脚本(如 preinstall、install 或者 postinstall),那么 npm 在安装过程中会执行这些脚本。这些脚本可能用于编译源代码、配置环境变量或执行其他安装后任务。

3、安装项目的所有依赖项 npm i / npm install

npm install

npm 会查看当前目录下的 package.json 文件,并安装该文件 dependenciesdevDependencies 字段中列出的所有依赖项,这些依赖项会被安装到项目的 node_modules 文件夹中。

4、更新依赖项 npm update xxx

用于更新项目中指定的包 xxx 到其最新版本

npm update xxx

5、删除依赖项 npm uninstall xxx

用于删除项目中指定的包 xxx

npm uninstall xxx
  • 查找并删除包:npm 会在项目的 node_modules 文件夹中查找名为 XXX 的包,并将其删除。
  • 更新 package.json:npm 会从 package.json 文件中的 dependencies 或者 devDependencies 列表中删除 XXX 包的条目。
  • 删除依赖关系:如果其他包依赖于 XXX 包,npm 会尝试更新这些包的依赖关系以反映 XXX 包的删除。
  • 更新 package-lock.json:如果有一个 package-lock.json 文件(这个文件通常会在运行 npm install 时生成,用于锁定依赖项的版本),npm 会更新这个文件以反映 XXX 包的删除。
  • 执行卸载脚本:如果 xxx 包含了任何卸载脚本(虽然这在实践中并不常见),npm 会在删除包之前尝试执行这些脚本。

标签:npm,Node,依赖,package,Package,js,json,安装
From: https://blog.csdn.net/2401_83232643/article/details/137512128

相关文章

  • 解决hadoop的namenode和datanode结点启动不起来的问题
    首先介绍一下本人的情况:我的虚拟机最开始是可以启动的,后来删除了主节点,重新创建了一个主节点,并保持相同的主机名,并把从结点上的hadoop打包发到了主节点(前提已经弄好ssh和相关映射)tar-zcf~/hadoop.master.tar.gz./hadoop//将hadoop目录下的内容打包复制到~/hadoop.master.ta......
  • Node.js毕业设计基于的智能手机实体店管理系统2fnly(Express+附源码)
    本系统(程序+源码)带文档lw万字以上  文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:随着科技的不断发展,智能手机已经成为人们生活中不可或缺的一部分。智能手机实体店作为手机销售的重要渠道,其管理水平和服务质量直接影响到消费者的购买体验......
  • Node.js毕业设计基于的智慧停车软件(Express+附源码)
    本系统(程序+源码)带文档lw万字以上  文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:随着城市化进程的加速,车辆数量急剧增加,停车问题日益凸显。传统的停车场管理方式存在许多问题,如停车难、停车时间长、停车位利用率低等。为了解决这些问题,智......
  • 在Windows环境下使用NodeJS的fast-glob不正确执行的问题
    fast-glob是NodeJS中的一个非常高效的文件遍历工具,通过它在文件系统中方便的指定和筛选文件,它采用UnixBashshell使用的规则返回与一组定义的指定模式匹配的路径名,并进行了一些简化,同时以任意顺序返回结果。它支持同步、Promise和StreamAPI。在Windows环境下使用NodeJS中的......
  • nvm node版本管理器
    介绍在前端项目开发或安装依赖过程中,本地node版本与项目node版本不对应,会出现报错,手动安装删除切换node版本太过麻烦,这时候就需要一款node版本管理器win64nvm下载安装安装包下载地址:https://github.com/coreybutler/nvm-windows/releasesctrl+f全局查找【nvm-setup】,......
  • node.js实现代码读取文本txt文件
    1,安装node2,[email protected]@8.4.2-save3,runnodejsnode.\version.js nodecodeconsthttp=require('http');consthostname='127.0.0.1';constport=3000;letfs=require('fs')console.log(fs......
  • Node.js毕业设计基于的校园闲置交易分享平台(Express+附源码)
    本系统(程序+源码)带文档lw万字以上  文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:随着互联网技术的飞速发展,人们的生活方式发生了翻天覆地的变化,特别是在校园环境中,学生们的生活节奏加快,学习压力增大。在这样的背景下,校园内产生的闲置物品......
  • npm包管理器
    一、npm包的使用1、npm特点npm:速度较慢:npm需等待上一个任务安装完成才能运行下一个任务,尤其是在网络不稳定的情况下,可能会出现延迟和丢包的情2、npm包安装在下载node.js时会自动安装npm包3、常用命令//通过下面命令查看安装的版本npm-v​//安装依赖包npminstall......
  • node.js安装
    访问Node.js官网(https://nodejs.org),网页打开后,在页面中直接可以看见一个Node.js软件下载入口Node.js官网会自动根据当前设备的系统类型推荐需要下载的软件,选择当前新的稳定版本进行下载即可。下载完成后,按照普通软件的方式来对其进行按照。1、点击next2、勾选内容并点击nex......
  • Node.js安装教程
    1.Node.jsNode.js是什么?我们知道,js通常情况下是基于浏览器运行的,那如果脱离了浏览器,该如何运行js呢?这就需要Node.js了。2.下载与安装下载下载地址:https://nodejs.org/en/download以windows为例,有安装版和免安装版。1号位置是官方推荐的最新版本:https://nodejs.org/dis......