npm (Node Package Manager) 简介

npm 是 Node.js 的默认包管理工具,用于管理和分发JavaScript库和工具。它允许开发者轻松安装、更新、配置和卸载这些包。npm 提供了一个命令行客户端,同时也维护着一个大型的在线软件注册表(npm registry),其中包含了成千上万的开源包。

npm 的基本使用

安装与初始化
  1. 安装 Node.js 和 npm

    • 通常安装了 Node.js 后,npm 也会一并安装。你可以通过以下命令检查是否已经安装以及版本信息:
      node -v
      npm -v
      
  2. 创建新项目

    • 在项目的根目录下运行 npm init 命令,可以创建一个新的 package.json 文件,这个文件定义了项目的元数据及依赖关系。
      npm init -y # 使用默认设置快速初始化
      
安装依赖包
  1. 安装全局包

    • 全局安装的包可以在任何地方使用,例如CLI工具。
      npm install -g <package-name>
      
  2. 安装本地包

    • 本地安装的包只会在当前项目中可用,并且会被添加到 package.jsondependenciesdevDependencies 中。
      npm install <package-name> --save    # 添加到dependencies
      npm install <package-name> --save-dev # 添加到devDependencies
      
  3. 安装特定版本的包

    • 可以指定要安装的具体版本号或版本范围。
      npm install <package-name>@<version>
      
  4. 安装所有依赖

    • 当克隆了一个已有 package.json 的项目时,可以通过以下命令安装所有列出的依赖。
      npm install
      
更新与卸载
  1. 更新依赖包

    • 更新 package.json 中列出的所有依赖到最新版本。
      npm update
      
  2. 卸载依赖包

    • 卸载不再需要的包,并从 package.json 中移除。
      npm uninstall <package-name>
      
包的发布
  1. 登录 npm 账户

    • 如果你想发布自己的包,首先需要登录。
      npm login
      
  2. 发布包

    • 确保你的 package.json 文件配置正确后,可以使用以下命令发布。
      npm publish
      
其他常用命令
  • 查看已安装的包

    npm list
    npm list -g --depth=0 # 查看全局安装的包
    
  • 清理缓存

    npm cache clean --force
    
  • 查找过时的包

    npm outdated
    
  • 运行脚本

    • package.json 文件中的 scripts 字段可以定义一些自定义命令,比如启动应用、构建等。
      npm run <script-name>
      

最佳实践

  • 锁定版本:使用 package-lock.json 文件来确保不同环境中安装的依赖版本一致。
  • 安全更新:定期运行 npm audit 来检查并修复潜在的安全漏洞。
  • 避免过多依赖:尽量减少不必要的依赖,保持项目的简洁性。
  • 使用 .npmrc 文件:对于私有仓库或其他特殊配置,可以使用 .npmrc 文件来进行个性化设置。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【力扣热题100】—— Day4.反转链表

你不会永远顺遂&#xff0c;更不会一直年轻&#xff0c;你太安静了&#xff0c;是时候出发了 —— 24.12.2 206. 反转链表 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&…

【AWS re:Invent 2024】一文了解EKS新功能:Amazon EKS Auto Mode

文章目录 一、为什么要使用 Amazon EKS Auto Mode&#xff1f;二、Amazon EKS自动模式特性2.1 持续优化计算成本2.2 迁移集群操作2.3 EKS 自动模式的高级功能 三、EKS Auto 集群快速创建集群配置四、查看来自 API 服务器的指标五、EKS 相关角色权限设置六、参考链接 一、为什么…

记事本建java及java命名规范

1.桌面开发&#xff1a;c# 2. 记事本建java&#xff1a; 以class的名称(类名)为名&#xff0c;名称.java 编译jdk&#xff1a;javac 名称.java 调动运行jre : java 名称 查看名称.java里面的内容&#xff1a;cat 名称.java java 的命名规范 大驼峰&#xff08;每个单词首…

过程管理系统(源码+文档+部署+讲解)

本文将深入解析“过程管理系统”的项目&#xff0c;探究其架构、功能以及技术栈&#xff0c;并分享获取完整源码的途径。 系统概述 过程管理系统是一款专为工业设计的综合管理平台&#xff0c;旨在通过集成各种管理流程和功能模块来提高管理效率和安全性。系统提供了从登录系…

期权懂|个股期权交割操作流程是什么样的?

期权小懂每日分享期权知识&#xff0c;帮助期权新手及时有效地掌握即市趋势与新资讯&#xff01; 个股期权交割操作流程是什么样的&#xff1f; 一、行权申报&#xff1a; 期权买方在行权日通过其经纪商提交行权指令&#xff0c;表明其决定行使期权权利。 二、行权匹配&#xf…

智能仓储:入库业务流程介绍

01 入库流程 入库业务流程&#xff0c;常见过程是这样的&#xff1a; 创建PO单 > 创建到货清单 > 核对货物 > 入库质检 > 货物贴标签 > 上架 > 库存同步 1、创建PO单 po单指的是的采购订单&#xff0c;比如采购了一车货品&#xff0c;这车的货品可以理解…

MySQL并发控制(一):幻读

假设有如下表结构&#xff1a; CREATE TABLE t(id int(11) NOT NULL,c int(11) DEFAULT NULL,d int(11) DEFAULT NULL,PRIMARY KEY (id),KEY c (c) ) ENGINEInnoDB;insert into t values(0,0,0),(5,5,5),(10,10,10),(15,15,15),(20,20,20),(25,25,25); 问&#xff1a;如果执行…

Ubuntu22.04中mysql8 rpm安装

1、安装依赖 sudo apt update sudo apt -y dist-upgrade sudo apt -y install vim net-tools wget gcc make cmake lrzsz sudo apt -y install libmecab2 libjson-perl 2、下载rpm文件 https://dev.mysql.com/downloads/mysql/ https://cdn.mysql.com//Downloads/MySQL-8.0/m…

Intel 性能分析“全家桶” For HPC(一)

本系列是对于HPC应用性能分析涉及的主要方法论及Intel主流工具分享。理解这些方法论将有助于对性能分析结果的理解。同时方法论也可以推广到其他的硬件平台的分析上。除此之外后面也将介绍如何用Vtune, Advisor以及ITAC进行性能分析&#xff0c;以及在性能分析过程中这三种性能…

Qwen1.8B大模型微调流程

提示&#xff1a;本篇笔记是在微调大模型为法律相关模型的教程下记录的&#xff0c;参考的讲解视频在B站上&#xff0c;一搜微调大模型为法律大模型就有很多视频。 文章目录 1. 数据集1.1 数据下载1.2 数据格式转换 2. 模型训练2.1 安装依赖2.2 模型训练 3. 模型推理3.1 LoRA模…

第十六章 使用 iSCSI 服务部署网络存储

1. iSCSI 技术介绍 硬盘是计算机硬件设备中重要的组成部分之一&#xff0c;硬盘存储设备读写速度的快慢也会对服务器的整体性能造成影响。硬盘存储结构、RAID 磁盘阵列技术以及LVM 技术等都是用于存储设备的技术&#xff0c;尽管这些技术有软件层面和硬件层面之分&#xff0c…

【js面试题】JavaScript 中箭头函数与普通函数的深度剖析

在 JavaScript 编程的世界里&#xff0c;函数是极为重要的组成部分。而随着 ES6 的出现&#xff0c;箭头函数成为了 JavaScript 函数家族中的新成员。它与传统的普通函数有着诸多的不同之处&#xff0c;这些差异深刻地影响着我们编写代码的方式以及代码的执行逻辑。本文将对 Ja…

【漫话机器学习系列】Adaboost算法

Adaboost&#xff08;Adaptive Boosting&#xff09;是一种经典的集成学习方法&#xff0c;主要思想是通过将多个弱学习器&#xff08;通常是简单模型&#xff0c;如决策树桩&#xff09;加权组合&#xff0c;来提升整体模型的预测能力。Adaboost 是一种自适应的学习方法&#…

SQL靶场第四关

sql靶场第四关攻略 输入?id1页面正常 输入?id1发现页面也正常 输入?id1"&#xff0c;页面异常&#xff0c;说明存在sql报错注入 在输入?id1" --页面还是报错 1.判断闭合点 我们需要找到闭合点&#xff0c;尝试在双引号后面加个) 输入?id1") --我们发现…

Trunk链路操作题

Trunk链路操作题 论证&#xff1a;

Alogrithm:三色棋

1. 说明 三色旗的问题最早由 E.W.Diikstra 所提出&#xff0c;他所使用的用语为 Dutch Nation Flag&#xff08;Dijkstra 为荷兰人&#xff09;&#xff0c;而多数的作者则使用 Three-Color Flag 来称之。 假设有一条绳子&#xff0c;上面有红、白、蓝三种颜色的旗子&#xff0…

需要排序的子数组

题目描述 给定一个无序数组arr&#xff0c;求出需要排序的最短子数组长度 要求&#xff1a;O(N) 如输入&#xff1a;arr{2,3,7,5,4,6}&#xff0c;返回4&#xff0c;因为只有{7,5,4,6}需要排序。 分析 以{2,3,7,5,4,6,8,9}为例&#xff1a; 前端小于最小波谷&#xff08;3…

Python酷库之旅-第三方库Pandas(154)

目录 一、用法精讲 701、pandas.Timestamp.utcnow方法 701-1、语法 701-2、参数 701-3、功能 701-4、返回值 701-5、说明 701-6、用法 701-6-1、数据准备 701-6-2、代码示例 701-6-3、结果输出 702、pandas.Timestamp.utcoffset方法 702-1、语法 702-2、参数 70…

如何启动神通数据库?神通数据库的启动方式一共有几种?

简单总结&#xff0c;神通数据库启动有三种方式&#xff1a; 1、dba管理工具方式 2、服务方式 &#xff08;1&#xff09;service oscardb_OSRDBd restart &#xff08;2&#xff09;/etc/init.d/oscardb_OSRDBd restart &#xff08;3&#xff09;systemctl start oscardb_OS…

Modbus Poll的使用

最近从串口调试助手接触到了Modbus Poll&#xff0c;一开始用的时候有些生疏&#xff0c;了解之后不得不说真香。 相对于串口调试助手&#xff0c;有些设备厂家会给一些点表和指令码&#xff0c;有些也可以通过modbus协议解析出来&#xff0c;相对来说&#xff0c;使用Modbus …