npm一篇通

npm 是什么?

npm,全称Node Package Manager,是随Node.js一起分发的开源包管理系统,也是JavaScript生态中最流行的依赖管理工具。npm可以用于安装、管理和发布JavaScript模块。

对于Java后端开发人员来说,可以将其等同于JavaScript世界的Mavan。

npm具有以下特点和功能:

  1. 包管理:npm可以用来安装、更新和卸载JavaScript模块。它提供了一个命令行界面,使得包的安装和管理变得非常简单和方便。

  2. 包发布:npm允许开发者将自己编写的JavaScript模块发布到npm的注册表中,以便其他人可以方便地安装和使用。开发者可以通过创建一个package.json文件来描述模块的信息和依赖关系,并使用npm publish命令将模块发布到注册表中。

  3. 依赖管理:npm可以自动解析和处理模块之间的依赖关系。当安装一个模块时,npm会自动下载并安装其所依赖的其他模块。开发者可以在package.json文件中指定模块的依赖关系,npm会根据这些信息自动安装所需的模块。

  4. 脚本执行:npm还提供了一个脚本执行的功能,开发者可以在package.json文件中定义一些脚本命令,比如启动服务、执行测试等。通过npm run命令,开发者可以方便地执行这些脚本。

  5. 版本控制:npm使用语义化版本控制(Semantic Versioning)对模块进行版本管理。每个模块都有一个版本号,开发者可以根据版本号来指定模块的依赖关系,确保项目的稳定性和一致性。

  6. 安全性:npm具有一些安全机制,例如通过检查模块的SHA-1哈希值来确保模块的完整性。npm还提供了一些安全工具,用于检测和修复潜在的安全漏洞。

npm的安装

由于npm是Node.js的一部分,因此安装Node.js时,npm通常也会被自动安装。

以下是安装Node.js和npm(如果尚未安装)的基本步骤:

  1. 访问Node.js官方网站

    • 打开浏览器,并访问Node.js的官方网站(https://nodejs.org/)。
  2. 下载Node.js安装包

    • 在网站上,会看到一个“下载”按钮或类似的链接。点击它,选择适合操作系统的版本(Windows、Mac或Linux)。
    • 下载完成后,会得到一个安装包文件(如.msi、.pkg或.tar.gz等)。
  3. 安装Node.js

    • 双击下载的安装包文件,按照屏幕上的提示进行安装。
    • 安装过程中,可能需要选择安装位置、确认用户权限等。
    • 安装完成后,Node.js和npm通常都会被自动安装在系统上。
  4. 验证安装

    • 打开命令行工具(在Windows上是CMD或PowerShell,在Mac或Linux上是Terminal)。
    • 输入node -v命令,然后按Enter键。如果Node.js已正确安装,该命令将显示安装的Node.js版本号。
    • 输入npm -v命令,然后按Enter键。如果npm已正确安装,该命令将显示安装的npm版本号。

npm的使用

可以使用npm来安装、更新和删除Node.js应用程序中的包了。

  • 使用npm install <package-name>命令来安装一个包
  • 使用npm uninstall <package-name>命令来卸载一个包,

除了安装和删除依赖包之外, npm 的常用的命令有:

  1. 初始化项目
    • npm init:创建一个新的package.json文件,该文件用于存储项目的元数据和依赖信息。执行命令后,它会提示你输入项目名称、版本、描述等信息,或者你可以使用npm init -y来快速生成一个带有默认值的package.json文件。
  2. 安装依赖
    • npm install <package-name>:安装指定名称的npm包作为项目的依赖项。默认情况下,这些依赖项会被添加到package.json文件的dependencies字段中。
    • npm install <package-name> --save-dev:安装指定名称的npm包作为项目的开发依赖项(仅用于开发环境)。这些依赖项会被添加到package.json文件的devDependencies字段中。
    • npm install(无参数):如果package.json文件已经存在,该命令会根据文件中的dependenciesdevDependencies字段安装所有依赖项。
  3. 卸载依赖
    • npm uninstall <package-name>:卸载指定名称的npm包。如果它是dependenciesdevDependencies中的一部分,那么相应的条目也会从package.json文件中删除。
  4. 更新依赖
    • npm update <package-name>:更新指定名称的npm包到最新版本。
    • npm update(无参数):更新package.json文件中列出的所有依赖项到最新版本。
  5. 查看依赖树
    • npm list:列出当前项目中安装的所有包及其依赖关系树。
  6. 运行脚本
    • npm run <script-name>:运行package.json文件中scripts字段下定义的特定脚本。例如,如果package.json中有一个"start": "node app.js"的脚本,那么你可以通过npm start来运行它。
  7. 搜索包
    • npm search <package-name>:搜索npm仓库中指定名称的包。
  8. 查看包信息
    • npminfo <package-name>:查看指定npm包的详细信息。
  9. 全局安装
    • npm install <package-name> -g:全局安装指定名称的npm包。全局安装的包可以在任何地方通过命令行直接使用。
  10. 查看npm配置
    * npm config ls:查看npm的配置信息。
    * npm config set <key> <value>:设置npm的配置项。
  11. 其他
    * npm install -g npm:更新npm到最新版本(尽管通常建议使用包管理器的更新命令,如apt、yum或brew)。
    * npm stop:停止正在运行的Node.js应用程序(但这并不是npm的原生命令,而是通常通过package.json中的脚本来定义)。

高级: 全局安装路径和缓存位置的配置

npm(Node Package Manager)的全局安装路径和缓存位置是npm的两个重要配置选项,它们分别决定了全局安装的npm包存储在哪里以及npm缓存数据的位置。

全局安装路径(Global Install Path)

全局安装路径是指npm全局安装模块时的存储位置。当在命令行中使用带有-g(或--global)参数的npm install命令安装一个npm包时,这个包会被安装到全局安装路径下。全局安装的包通常可以被系统中的任何Node.js项目所使用,而不仅仅是安装它们的那个项目。

如何配置全局安装路径

可以通过npm的配置命令来设置全局安装路径。在命令行中执行以下命令:

npm config set prefix <path>

其中<path>是想要设置的全局安装路径。例如,如果想要将全局安装路径设置为/usr/local/npm-global,可以执行:

npm config set prefix /usr/local/npm-global

注意:更改全局安装路径后,可能需要更新你的系统PATH环境变量,以便包含新的全局安装路径下的bin目录,从而能够在命令行中直接运行全局安装的命令。

缓存位置(Cache Location)

npm在下载和安装npm包时,会将包的数据缓存到本地,以便在将来能够更快地获取这些包。缓存位置就是这些缓存数据存储的地方。

如何配置缓存位置

同样,你可以通过npm的配置命令来设置缓存位置。在命令行中执行以下命令:

npm config set cache <path>

其中<path>是你想要设置的缓存位置。例如,如果你想要将缓存位置设置为/home/user/.npm-cache,你可以执行:

npm config set cache /home/user/.npm-cache

注意:更改缓存位置通常不需要更新其他环境变量或配置。

验证配置

可以使用npm config list命令来查看当前的npm配置,包括全局安装路径和缓存位置。这个命令会列出npm的所有配置选项和它们的值。

注意事项

  • 在修改全局安装路径或缓存位置之前,最好先确保你了解这些更改的含义和潜在影响。
  • 如果你在多个项目或机器上共享npm配置,那么可能需要考虑使用.npmrc文件或环境变量来管理这些配置,以便在不同的环境中保持一致。
  • 如果你在修改配置后遇到任何问题,可以尝试使用npm config delete <key>命令来删除特定的配置选项,并恢复到npm的默认设置。其中<key>是你要删除的配置选项的名称,例如prefixcache


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/589011.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用 Langchain、Langfuse、Nemo-gaurdrails、RAGAs构建 RAG 管道并进行监控和评估

原文地址:build-end-to-end-rag-pipeline-with-monitoring-and-evaluation-using-langchain-azure-ai-search 2024 年 4 月 21 日 介绍 使用现代的LLM框架,如Langchain或llamaindex,可以迅速搭建一个用于 RAG 的管道,通常只需编写大约5-6行代码。然而,若要构建一个适用于生…

短视频素材去哪里搬运?短视频素材有哪些类型?

在这个数字化和视觉传达至关重要的时代&#xff0c;选择合适的视频素材对于提升视频内容的吸引力和观众参与度至关重要。无论您是一名广告制片人、社交媒体经理还是独立视频制作者&#xff0c;以下这些精选的视频素材网站将为您提供从高清视频到特效资源的全面支持&#xff0c;…

HSDB使用教程

HSDB&#xff1a;Hostspot Debugger&#xff0c;JVM内置的工具&#xff0c;用于深入分析JVM运行时的内部状态 启动HSDB java -cp D:/tools/jdk-1.8/lib/sa-jdi.jar sun.jvm.hotspot.HSDB 获取进程id jps 连接到指定进程 查找类 通过查询查找对象 输入查询语句 select d from …

算法复杂度分析:揭秘隐藏的计算之谜

复杂度 算法的复杂度指的是执行该算法的程序在运行时所需要的时间和空间资源。时间复杂度不是代码真正的时间&#xff0c;而是数据规模的增长所表达的趋势。 算法的复杂度分析分为时间复杂度和空间复杂度。一般我们说的多的是算法的时间复杂度&#xff0c;希望通过较少时间执行…

iOS 实现视图遮罩效果

有时候&#xff0c;我们会遇到这种需求&#xff0c;只讲视图的某个部分展示出来 这时候&#xff0c;我们可以通过设置该视图layer.mask layerb来实现&#xff0c;需要注意的是&#xff0c;这里的layerb必须要设置backgroundColor&#xff0c;渐变layer有colors,否则达不到效果…

ubuntu sudo apt-get install neo4j 配置安装与设置远程访问

文章目录 下载Adding the Debian repositoryInstalling Neo4j安装流程设置远程访问 下载 neo4j 官方的下载地址&#xff0c;进入页面之后&#xff0c;往下滑&#xff1a; https://neo4j.com/deployment-center/#community 点击 Visit https://debian.neo4j.com/ Adding the …

链表(数组实现的伟大二踢脚)

一.链表与数组 链表作为 C 语言中一种基础的数据结构&#xff0c;在平时写程序的时候用的并不多&#xff0c;但在操作系统里面使用的非常多。不管是RTOS还是Linux等使用非常广泛&#xff0c;所以必须要搞懂链表&#xff0c;链表分为单向链表和双向链表&#xff0c;单向链表很少…

2024.5.1【项目测试报告】模拟微信实现网页聊天室

目录 项目介绍 核心功能 额外拓展 核心技术 项目页面设计 注册页面 登录页面 找回密码页面 网页聊天室页面 个人中心页面 测试计划 功能测试 注册页面 登录页面 找回密码页面 个人中心页面 网页聊天室页面 自动化测试 单例驱动 获取屏幕截图 注册页面自动化测…

GPG的使用

这里写自定义目录标题 安装加密程序生成加密密钥怎么备份自己的密钥就可以使用公钥加密邮件信息了 安装加密程序 下载gpg4win&#xff1a; https://www.gpg4win.org/index.html 免费的&#xff0c;如果使用的是苹果电脑&#xff0c;使用https://gpgtools.org/。 如果是linux&a…

【精选文献】JAG|基于时序Sentinel-1 SAR影像小农耕作区烟草空间分布制图

目录 文章简介 01 文章摘要 02 研究背景、目标及创新点 03 研究区域与数据集 04 研究方法 05 研究结果 06 研究讨论 07 研究结论 08 文章引用 文章简介 论文名称&#xff1a;Mapping tobacco planting areas in smallholder farmlands using Phenological-Spatial-Te…

golang判断通道chan是否关闭的2种方式

chan通道在go语言的办法编程中使用频繁&#xff0c;我们可以通过以下2种方式来判断channel通道是否已经关闭&#xff0c;1是使用 for range循环&#xff0c;另外是通过 for循环中if 简短语句的 逗号 ok 模式来判断。 示例代码如下&#xff1a; //方式1 通过for range形式判断…

LNMP部署wordpress

1.环境准备 总体架构介绍 序号类型名称外网地址内网地址软件02负载均衡服务器lb0110.0.0.5192.168.88.5nginx keepalived03负载均衡服务器lb0210.0.0.6192.168.88.6nginx keepalived04web服务器web0110.0.0.7192.168.88.7nginx05web服务器web0210.0.0.8192.168.88.8nginx06we…

Nodejs -- 流程控制库

流程控制库 尾触发和next 尾触发最多的应用是在Connect的中间件 var app connect() app.use(connect.staticCache()) app.use(connect.static(__dirname /public)) app.use(conect.cokkieParser()) app.use(connect.session()) app.use(connect.query()) app.use(connect.…

跨平台终端软件——quardCRT

作为一个技术栈比较复杂的程序&#xff0c;工作常常会在windows/linux/macos等不同的平台切换开发&#xff0c;开发过程中最常用的就是终端工具了&#xff0c;一个趁手的终端可以成倍的提高工作效率&#xff0c;因此我一直希望能找个一个跨平台体验一致无缝切换的终端软件&…

Unity Audio Filter 入门

概述&#xff1a; 如果你在你项目中需要一些特殊的声音效果&#xff0c;那这部分声音过滤器的部分一定不要错过喔&#xff0c;让我们来学习这部分的内容吧&#xff01; 这部分理论性比较强&#xff0c;认真看我的注解哈&#xff0c;我尽量解释的易懂一点。 Audio Chorus Filter…

街道征迁项目档案管理系统

街道征迁项目档案管理系统是一个用于管理街道征迁项目档案的软件系统。该系统的主要功能包括档案录入、档案存储、档案检索、档案共享等。 系统的用户可以通过该系统录入征迁项目相关的档案信息&#xff0c;包括项目名称、征迁范围、土地面积、征迁补偿费用等。同时&#xff0c…

vue本地调试devtools

一、谷歌浏览器加载扩展程序 二、把解压的压缩包添加即可&#xff0c;重启浏览器 三、启动前端本地项目&#xff0c;即可看到Vue小图标

AD | Altium Designer(原理图设计、电路仿真、PCB绘图)汉化版

Altium Designer(原理图设计、电路仿真、PCB绘图) 通知公告 Altium Designer(AD)是一种功能强大的电子设计自动化(EDA)软件。它主要用于设计和开发电子产品,如电路板(PCB)、集成电路(IC)和嵌入式系统。AD提供了完整的设计工具套件,包括原理图设计、PCB布局、仿真、设…

ICode国际青少年编程竞赛- Python-1级训练场-识别循环规律1

ICode国际青少年编程竞赛- Python-1级训练场-识别循环规律1 1、 for i in range(4):Dev.step(6)Dev.turnLeft()2、 for i in range(3):Dev.turnLeft()Dev.step(2)Dev.turnRight()Dev.step(2)3、 for i in range(3):Spaceship.step(5)Spaceship.turnLeft()Spaceship.step(…

互联网轻量级框架整合之MyBatis底层运转逻辑

MyBatis运转过程中主要步骤有两个&#xff0c;其一读取配置文件缓存到Configuration对象&#xff0c;用于构建SqlSessionFactory&#xff1b;其二是SqlSession的执行过程&#xff0c;这其中SqlSessionFactory的构建过程相对很好理解&#xff0c;而SqlSession的执行过程就相对复…