npm介绍

embedded/2025/1/21 19:35:33/

npm(Node Package Manager)是 Node.js 的默认包管理工具,用于管理 JavaScript 和 Node.js 项目的依赖关系。它既是一个包管理工具,又是一个在线仓库,开发者可以通过它分享和下载开源的 JavaScript 库和工具。npm 是世界上最大的开源软件注册表,托管着超过一百万个包。

主要功能和特点

1. 包管理

npm 的核心功能是管理依赖包。它允许开发者方便地安装、更新和删除项目中的依赖包。npm 通过读取 package.json 文件来管理这些依赖。

常用的命令:

  • 安装依赖包
    npm install <package-name>
    
  • 全局安装包
    npm install -g <package-name>
    
  • 卸载依赖包
    npm uninstall <package-name>
    
2. 版本管理

npm 支持对包版本的管理,允许开发者指定依赖包的版本范围。例如,可以通过 ^(接受次版本升级)和 ~(接受修复版本升级)来控制更新策略。

  • 安装指定版本
    npm install <package-name>@<version>
    
  • 更新包到最新版本
    npm update <package-name>
    
3. 脚本管理

package.json 中,npm 可以用来定义并运行各种脚本命令,如构建、测试和部署等。例如,常见的命令如下:

  • 定义脚本
    "scripts": {"start": "node app.js","test": "mocha"
    }
    
  • 运行脚本
    npm run start
    
4. 依赖管理

package.json 文件中,开发者可以指定项目的依赖包(dependencies)和开发依赖包(devDependencies)。这使得项目在生产环境和开发环境中具有不同的依赖。

"dependencies": {"express": "^4.17.1"
},
"devDependencies": {"webpack": "^4.41.6"
}

安装生产依赖:

npm install --production

安装开发依赖:

npm install --dev
5. 包发布与管理

npm 允许开发者将自己的库或工具发布到公共仓库或私有仓库中,便于共享和重用。发布包时,可以指定版本、标签、许可证等信息。

  • 发布包
    npm publish
    
  • 登录 npm 账户
    npm login
    
6. 注册表

npm 的官方注册表(registry)是一个公共的包仓库,存储着各种开源的 JavaScript 库。开发者可以使用 npm 从注册表下载并安装这些包,也可以将自己的包上传到注册表。

默认的 npm 注册表地址是:

https://registry.npmjs.org/

你还可以使用私有注册表来管理公司内部的包,或者使用镜像来加速下载。

7. 缓存机制

npm 使用缓存来加速包的安装过程。当你首次安装某个包时,npm 会将其下载到本地缓存中,以便下次使用时可以直接从缓存中提取,避免重新下载。

  • 清除缓存
    npm cache clean --force
    
8. package-lock.json 文件

package-lock.jsonnpm 生成的一个文件,记录了每个依赖包的精确版本以及它们的依赖关系。它确保团队成员在不同环境中安装的依赖版本一致,从而避免因版本不一致导致的问题。

npm__102">常用 npm 命令总结

  • 初始化项目

    npm init
    

    该命令将创建一个新的 package.json 文件,用于管理项目的依赖和脚本。

  • 安装所有依赖

    npm install
    

    该命令将安装 package.json 中列出的所有依赖。

  • 查看已安装的包

    npm list
    
  • 查看全局安装的包

    npm list -g
    
  • 检查可更新的包

    npm outdated
    
  • 卸载包

    npm uninstall <package-name>
    
  • 更新包

    npm update <package-name>
    
  • 运行脚本

    npm run <script-name>
    

总结

npm 是一个功能强大的包管理工具,广泛用于 Node.js 项目中。它能够简化依赖管理、版本控制、包发布和项目脚本的执行。通过 npm,开发者可以方便地获取开源库、管理项目依赖、提高开发效率。尽管存在一些性能和可扩展性的问题,npm 仍然是许多 JavaScript 和 Node.js 开发者的首选工具。


http://www.ppmy.cn/embedded/155860.html

相关文章

C#深度神经网络(TensorFlow.NET)

C#深度神经网络 文章目录 C#深度神经网络前言专业术语讲解模型[Model]向量[Vector]矩阵[Matrix]张量[Tensor]批量大小&#xff08;Batch Size&#xff09;迭代次数&#xff08;Epochs&#xff09;交叉熵[Cross Entropy] 训练流程数据预处理数据打标签数据转换标准化/归一化选择…

vue3-sfc-loader 加载远程.vue文件(sfc)案例

注意事项 style标签如果增加了lang比如&#xff1a;lang“scss”&#xff0c;需要提供scss-loader的处理器&#xff0c;这个暂时没研究&#xff0c;我的处理方式是将动态模版的css放在了全局打包暂时还没有测试&#xff0c;后面测试了会同步更新 安装vue3-sfc-loader npm inst…

CSS 颜色

所有浏览器都支持的颜色名 所有现代浏览器均支持以下 140 种颜色名称&#xff08;单击颜色名称或十六进制值&#xff0c;可查看将以该颜色为背景颜色以及不同的文本颜色&#xff09;&#xff1a; 颜色名十六进制颜色值颜色AliceBlue#F0F8FFAntiqueWhite#FAEBD7Aqua#00FFFFAqu…

Node.js卸载超详细步骤(附图文讲解)

Node.js卸载超详细步骤 1、通过控制面板删除node版本2、删除node的安装目录3、查找.npmrc文件是否存在&#xff0c;有就删除。4、查看以下文件是否存在&#xff0c;有就删除5、打开系统设置&#xff0c;检查系统环境变量&#xff0c;将node相关的配置都删掉6、查看是否删除成功…

【Qt 常用控件】按钮类(QPushButton、QRadioButton、QCheckBox)

按钮控件继承自抽象类QAbstractButton。 抽象类不允许实例化对象&#xff0c;内部定义纯虚函数。只能通过子类继承&#xff0c;重写纯虚函数的方式使用。 1. QPushButton 1.1 QAbstractButton中和QPushButton相关的属性 text按钮显示文本icon按钮图标iconSize按钮图标尺寸s…

网络设备安全保证计划 (NESAS) - 供应商视角 笔记

NESAS 对供应商的意义 提升产品安全性: NESAS 为供应商提供了一套全球认可的安全评估标准&#xff0c;帮助其识别和解决产品中的安全漏洞。通过 NESAS 评估&#xff0c;供应商可以证明其产品符合行业最高安全标准&#xff0c;增强客户信任。增强市场竞争力: 通过 NESAS 认证的…

【React】win系统环境搭建

动图更精彩 方案如下 在Visual Studio Code&#xff08;VSCode&#xff09;中搭建React开发环境是一个相对简单但非常重要的步骤&#xff0c;可以帮助你更高效地进行前端开发。以下是详细的步骤和配置指南&#xff1a; 一、准备工作 安装Visual Studio Code (VSCode)&#x…

回归预测 | MATLAB基于TCN-BiGRU时间卷积神经网络结合双向门控循环单元多输入单输出回归预测

效果一览 基本介绍 回归预测 | MATLAB基于TCN-BiGRU时间卷积神经网络结合双向门控循环单元多输入单输出回归预测 一、引言 1.1、研究背景及意义 在当今数据驱动的时代&#xff0c;时间序列预测已成为金融、气象、工业控制等多个领域的关键技术。随着人工智能和机器学习技术的…