包管理工具--》npm的配置及使用(一)

npm、cnpm、pnpm和yarn使用(官网、安装、命令行、上传自己的包、包版本号详解、更新卸载包、查看所有版本、同等依赖peer、可选依赖optional) 目录npm官网npm install packageNamenpm i packagename@版本号安装git上发布的包npm ci注意(对比npm i)npm outdatednpm updatenpm init -y npm listnpm list | grep packageNamenpm install --productionnpm view packagename versionsnpm config get registrynpm config set registry https://r 阅读详情

包管理工具系列文章目录

一、包管理工具--》npm的配置及使用(一)

二、包管理工具--》npm的配置及使用(二)

 三、包管理工具--》发布一个自己的npm包

四、包管理工具--》yarn的配置及使用

五、包管理工具--》其他包管理器之cnpm、pnpm、nvm

目录

🌟概念

🌟背景

🌟前端包管理器

🌟包的安装

本地安装

全局安装

🌟包配置

配置文件

保存依赖关系

🌟包的使用

 🌟写在最后 


🌟概念

模块(module)

通常以单个文件形式存在的功能片段,入口文件通常称之为入口模块或主模块

库(library,简称lib)

以一个或多个模块组成的完整功能块,为开发中某一方面的问题提供完整的解决方案

包(package)

包含元数据的库,这些元数据包括:名称、描述、git主页、许可证协议、作者、依赖等等

🌟背景

CommonJS 的出现,使 node 环境下的 JS 代码可以用模块更加细粒度的划分。一个类、一个函数、一个对象、一个配置等等均可以作为模块,这种细粒度的划分,是开发大型应用的基石。

为了解决在开发过程中遇到的常见问题,比如加密、提供常见的工具方法、模拟数据等等,一时间,在前端社区涌现了大量的第三方库。这些库使用 CommonJS 标准书写而成,非常容易使用。

然而,在下载使用这些第三方库的时候,遇到难以处理的问题:

  • 下载过程繁琐
    • 进入官网或 github 主页
    • 找到并下载相应的版本
    • 拷贝到工程的目录中
    • 如果遇到有同名的库,需要更改名称
  • 如果该库需要依赖其他库,还需要按照要求先下载其他库
  • 开发环境中安装的大量的库如何在生产环境中还原,又如何区分
  • 更新一个库极度麻烦
  • 自己开发的库,如何在下一次开发使用

以上问题,就是包管理工具要解决的问题

🌟前端包管理器

几乎可以这样认为,前端所有的包管理器都是基于 npm 的,目前,npm 即是一个包管理器,也是其他包管理的基石

npm 全称为 node package manager,即 node 包管理器,它运行在 node 环境中,让开发者可以用简单的方式完成包的查找、安装、更新、卸载、上传等操作

npm 之所以要运行在 node 环境,而不是浏览器环境,根本原因是因为浏览器环境无法提供下载、删除、读取本地文件的功能。而 node 属于服务器环境,没有浏览器的种种限制,理论上可以完全掌控运行 node 的计算机。

npm 的出现,弥补了 node 没有包管理器的缺陷,于是很快,node 在安装文件中内置了 npm,当开发者安装好 node 之后,就自动安装了 npm,不仅如此,node 环境还专门为 npm 提供了良好的支持,使用 npm 下载的包更加方便了。

npm 由三部分组成:

  • registry:入口
    • 可以把它想象成一个庞大的数据库
    • 第三方库的开发者,将自己的库按照 npm 的规范,打包上传到数据库中
    • 使用者通过统一的地址下载第三方包
  • 官网:https://www.npmjs.com/
    • 查询包
    • 注册、登录、管理个人信息
  • CLI:command-line interface 命令行接口
    • 安装好 npm 后,通过 CLI 来使用 npm 的各种功能

node 和 npm 是互相成就的,node 的出现让 npm 火了,npm 的火爆带动了大量的第三方库的发展,很多优秀的第三方库打包上传到了 npm,这些第三方库又为 node 带来了大量的用户

🌟包的安装

安装(install)即下载包 由于 npm 的官方 registry 服务器位于国外,可能受网速影响导致下载缓慢或失败。因此,安装好 npm 之后,需要重新设置 registry 的地址为国内地址。目前,淘宝 https://registry.npm.taobao.org 提供了国内的 registry 地址,先设置到该地址。设置方式为npm config set registry https://registry.npm.taobao.org。设置好后,通过命令npm config get registry进行检查 

npm 安装一个包,分为两种安装方式:

  1. 本地安装
  2. 全局安装

本地安装

使用命令npm install 包名或npm i 包名即可完成本地安装

本地安装的包出现在当前目录下的node_modules目录中

随着开发的进展,node_modules目录会变得异常庞大,目录下的内容不适合直接传输到生产环境,因此通常使用.gitignore文件忽略该目录中的内容 本地安装适用于绝大部分的包,它会在当前目录及其子目录中发挥作用 通常在项目的根目录中使用本地安装 安装一个包的时候,npm 会自动管理依赖,它会下载该包的依赖包到node_modules目录中 如果本地安装的包带有 CLI,npm 会将它的 CLI 脚本文件放置到node_modules/.bin下,使用命令npx 命令名即可调用

全局安装

全局安装的包放置在一个特殊的全局目录,该目录可以通过命令npm config get prefix查看

使用命令npm install --global 包名 或 npm i -g 包名

重要:全局安装的包并非所有工程可用,它仅提供全局的 CLI 工具

大部分情况下,都不需要全局安装包,除非:

  1. 包的版本非常稳定,很少有大的更新
  2. 提供的 CLI 工具在各个工程中使用的非常频繁
  3. CLI 工具仅为开发环境提供支持,而非部署环境

🌟包配置

目前遇到的问题:

  1. 拷贝工程后如何还原?
  2. 如何区分开发依赖和生产依赖?
  3. 如果自身的项目也是一个包,如何描述包的信息

以上这些问题都需要通过包的配置文件解决

配置文件

npm 将每个使用 npm 的工程本身都看作是一个包,包的信息需要通过一个名称固定的配置文件来描述

配置文件的名称固定为:package.json

可以手动创建该文件,而更多的时候,是通过命令npm init创建的

配置文件中可以描述大量的信息,包括:

  • name:包的名称,该名称必须是英文单词字符,支持连接符
  • version:版本
    • 版本规范:主版本号.次版本号.补丁版本号
    • 主版本号:仅当程序发生了重大变化时才会增长,如新增了重要功能、新增了大量的API、技术架构发生了重大变化
    • 次版本号:仅当程序发生了一些小变化时才会增长,如新增了一些小功能、新增了一些辅助型的API
    • 补丁版本号:仅当解决了一些 bug 或 进行了一些局部优化时更新,如修复了某个函数的 bug、提升了某个函数的运行效率
  • description:包的描述
  • homepage:官网地址
  • author:包的作者,必须是有效的 npm 账户名,书写规范是 account <mail>,例如:zhangsan <zhangsan@gmail.com>,不正确的账号和邮箱可能导致发布包时失败
  • repository:包的仓储地址,通常指 git 或 svn 的地址,它是一个对象
    • type:仓储类型,git 或 svn
    • url:地址
  • main:包的入口文件,使用包的人默认从该入口文件导入包的内容
  • keywords: 搜索关键字,发布包后,可以通过该数组中的关键字搜索到包

使用npm init --yes或npm init -y可以在生成配置文件时自动填充默认配置

保存依赖关系

大部分时候,我们仅仅是开发项目,并不会把它打包发布出去,尽管如此,我们仍然需要package.json文件

package.json文件最重要的作用,是记录当前工程的依赖

  • dependencies:生产环境的依赖包
  • devDependencies:仅开发环境的依赖包

配置好依赖后,使用下面的命令即可安装依赖

## 本地安装所有依赖 dependencies + devDependencies
npm install
npm i

## 仅安装生产环境的依赖 dependencies
npm install --production

这样一来,代码移植就不是问题了,只需要移植源代码和package.json文件,不用移植node_modules目录,然后在移植之后通过命令即可重新恢复安装

为了更加方便的添加依赖,npm支持在使用install命令时,加入一些额外的参数,用于将安装的依赖包保存到package.json文件中

涉及的命令如下

## 安装依赖到生产环境
npm i 包名
npm i --save 包名
npm i -S 包名

## 安装依赖到开发环境
npm i --save-dev 包名
npm i -D 包名

🌟包的使用

nodejs 对 npm 支持非常良好

当使用 nodejs 导入模块时,如果模块路径不是以 ./ 或 ../ 开头,则 node 会认为导入的模块来自于 node_modules 目录,例如:

let _lodash = require("lodash");

它首先会从当前目录的以下位置寻找文件

node_modules/lodash.js
node_modules/lodash/入口文件

若当前目录没有这样的文件,则会回溯到上级目录按照同样的方式查找

如果到顶级目录都无法找到文件,则抛出错误

上面提到的入口文件按照以下规则确定

  1. 查看导入包的package.json文件,读取main字段作为入口文件
  2. 若不包含main字段,则使用index.js作为入口文件

 🌟写在最后 

包管理工具--》栏目将详细讲解前端包管理器,包括npm,yarn,及其他包管理器,如果文中出现有瑕疵的地方各位通过评论或者私信联系我,我们一起进步,有兴趣的伙伴可以关注订阅一下:点击查看更多实用技巧与知识

`npm-config` 是 Node Package Manager (npm) 的一个重要工具,用于管理npm的配置项 npm-config是 Node Package Manager (npm) 的一个重要工具,用于管理npm的配置项。示例:将默认注册镜像设为中国淘宝镜像源如果要以JSON格式输出,可以添加--json参数。通过这些命令,你可以管理和调整npm的行为,比如更改默认的包存储位置或下载速度优化。npm-config是Node Package Manager(npm)中的一个重要实用程序,它允许用户管理和查看npm的配置选项。这些配置项定义了npm的行为,如缓存路径、默认注册服务器地址、全局模块安装位置等。 阅读详情

相关推荐

NodeJs包管理工具npm、yarn、pnpm淘宝镜像源最新配置指南

本文详细介绍了如何为NodeJs包管理工具npm、yarn、pnpm配置最新的淘宝镜像源,以解决国内开发者因网络延迟导致的依赖安装缓慢问题。通过简单命令即可切换至`registry.npmmirror.com`镜像,显著提升下载速度,并涵盖常见问题解决方案及实用技巧。

weixin_42567046的博客 519

配置npm

(1)在NodeJs下建立"node_global"及"node_cache"两个文件夹 (2)输入以下命令配置npm的全局模块的存放路径以及cache的路径 npm config set prefix + node_global的路径 npm config set cache + node_cache的路径 (3)配置系统变量,新建NODE_PATH后输入node_modules的路径 (4)在命令行输入以下命令试着安装express(注:“-g”这个参数意思是装到g..

qq_51644702的博客 7836

微软Agent包管理器apm:让Agent配置像npm包一样管理

在软件开发中,包管理器早已成为工程化基础设施的核心组件,从npm到pip,它们通过统一的依赖声明、版本锁定和可复用分发机制,极大提升了代码资产的交付效率。随着大模型应用与智能体开发逐渐走向多Agent协作,Agent本身的提示词模板、工具函数、插件依赖等配置资产也开始面临同样的管理难题。微软推出的Agent包管理器apm,将这类配置抽象为可安装、可卸载、可追踪的包结构,为Agent配置提供标准化的安装、升级与依赖解析能力。这一工具不仅适用于多Agent项目的日常开发,还能帮助团队沉淀可复用的Agent资产,

weixin_34341229的博客 651

npm配置详解和常见命令,附图文

package.json文件中会添加相关文件,也同时会生成一个package-lock.json文件,作者删除依赖时,再次下载依赖,会根据该文件恢复依赖。会生成一个package.json文件,存入初始化时的数据。后续命令会依据该文件,安装的一些依赖也会进入该文件。(如果后续下载依赖失败或者卡顿可以更换仓库,其余仓库百度可搜到)首先需要下载nodejs,可自行前往nodejs官网下载。npm install -g jquery 下载到全局。npm ls -g 查看全局依赖。以上命令只是一小部分,望见谅。

weixin_62846431的博客 1871

全网详解 .npmrc 配置文件:比如.npmrc的优先级、命令行,如何配置.npmrc以及npm常用命令等

全网详解 .npmrc 配置文件:比如.npmrc的优先级、命令行,如何配置.npmrc以及npm常用命令等。

念兮为美 1万+

3. ChaosBlade-Box平台安装

参考自:https://chaosblade.io/docs/about-chaosblade/box-introduce/通过ChaosBlade-Box可实现chaosblade等已托管工具自动化部署,按照社区的建立的混沌实验模型统一实验场景,根据主机、Kubernetes、应用来划分目标资源,通过目标管理器来控制,在实验创建页面,可以实现白屏化的目标资源选择。

lldhsds的专栏 2485

包管理工具--》npm的配置及使用(二)

global有一个属性是process,该属性是一个对象,包含了当前运行node程序的计算机的很多信息,其中有一个信息是env,是一个对象,包含了计算机中所有的系统变量。如果允许版本增加,可以让依赖包的bug得以修复(补丁版本号),可以带来一些意外的惊喜(次版本号),但同样可能带来不确定的风险(新的bug)有的时候,我们希望:安装我的依赖包的时候,次版本号和补丁版本号是可以有提升的,但是主版本号不能变化。有的时候,我们又希望:安装我的依赖包的时候,只有补丁版本号可以提升,其他都不能提升。

Ghmin的博客 1630

Android-音频配置文件详解

前言:   Android P 引入了一种新的音频政策配置文件格式 (XML),用于描述音频拓扑。新的 XML 文件支持定义输出输入流配置文件、可用于播放和捕获的设备以及音频属性的数量和类型。但是每个项目的代码里面都有很多音频配置文件,具体使用的是哪个文件呢?本文将详细讲述。 1. 查看运行时具体使用的xml adb shell dumpsys media.audio_policy | grep -iE "Config source:" 结果如下: Config source: /vendor

cheriyou_的博客 3946

npm包管理工具的安装及配置使用

原文链接:https://blog.csdn.net/qq_25502269/article/details/79346545

每天进步一点点! 620

信道估计准则演进:从LS、MMSE到LMMSE的工程权衡

本文深入探讨了信道估计准则的演进历程,从LS、MMSE到LMMSE的工程权衡。通过对比分析三大经典算法的数学本质、工程实现及适用场景,揭示了在计算复杂度、实时性和性能之间的关键取舍。文章结合4G/5G基站项目实战经验,提供了算法选型的三维决策模型和前沿发展建议,为无线通信系统设计提供实用指导。

weixin_29327525的博客 282

c#源码,将矩阵(二维数组)渲染成云图,强度图,热力图,均匀性图,伪彩图

优快云软件0积分下载链接:https://download.csdn.net/download/wanghuannihao1992/86656759。6、渲染效果良好,颜色均匀分布,不存在等高线,交叉点。3、纯粹的C#代码编写,不含第三方dll或者控件。4、支持ColorBar显示,强度值颜色坐标显示。2、渲染时间60ms左右,速度快,1、二维数据最小支持2*2,7、采样全新数据插值算法。先直接上C#软件效果图。5、整图保存为单个图片。

业余程序员小徐的博客 6881

npm 包管理及 registry 或 proxy 配置

NPM 模块管理 npm 是 Node 的模块管理器,使用 npm install 可以将 package.json 中配置的依赖包从远程仓库(Registry)下载并安装到本地环境中。 npm registry 是一个类似于 java maven repository 的包管理仓库,负责 node 模块包及及模块元信息的管理,如上传、下载、查询等。官方的 registry 网址:https://registry.npmjs.org/ 在 registry 网址后面跟上模块名,会得到一个 JSON 对象,里

抱朴守拙 9052

YOLO26 无损剪枝:稀疏训练 + 结构化通道裁剪

YOLO26 无损剪枝链路:YOLO26s (7.2M) → 稀疏训练 30 epoch (L1 on BN gamma, lam=0.01) → 阈值剪枝 50% (gamma<quantile(0.5)) → 结构化重建 Conv+BN → 微调 10 epoch (lr=1e-4) → YOLO26n (1.9M, mAP50 0.808, 仅降 0.6%)。核心贡献:稀疏训练让 BN gamma 趋向二元分布 (近 0 或近 1), 剪枝阈值可直接取 median 自动 50% 压缩。

m0_64661770的博客 263

npm与包之包管理配置文件

今天的天气真的太热了!中午洗完澡去图书馆,短短一段路就会出汗,超级想吃雪糕,冰镇西瓜,冰饮料,我现在已经在幻想我躺在空调屋子里,身上盖着夏凉被,左手拿着雪糕,右手拿着冰饮,桌上摆着半个无籽沙瓤大西瓜,西瓜中间扎着一个勺子,头顶的投影仪打在对面的墙上,因为拉着窗帘,显得无比清晰,还放着我最喜欢的哈利波特......好吧,现在就想想吧。 目录 一、包管理配置文件 1.快速创建package.json 2.dependencies节点 3.devDependencies节点 二、安装与卸载 1..

bnzjxbsjjdnnxj的博客 521

东方财富个股实时行情爬虫实战:从入门到精通,手把手教你构建股票数据采集系统

在量化投资、股市分析和数据挖掘等领域,获取实时、准确的股票行情数据是第一步也是至关重要的一步。东方财富网作为国内最大的财经门户网站之一,提供了丰富的股票数据和实时行情接口。本文将带你从零开始,构建一个完整的东方财富个股实时行情爬虫系统,涵盖股票代码遍历、JSON接口分析、反爬虫策略应对、数据持久化存储等核心技术点。目录前言一、项目背景与目标1.1 为什么要爬取东方财富数据?1.2 项目目标1.3 技术栈二、接口分析与逆向工程2.1 寻找真实数据接口2.2 简化接口2.3 字段含义对照表三、股票代码获取。

2201_76125261的博客 145

15、基于最优传输的协作多视图聚类框架

本文提出了一种基于最优传输理论的协作多视图聚类框架,通过引入协作学习机制在不同视图间建立先验交互,以提升共识聚类的质量。框架包含两种新方法:协作共识投影方法(CoCP)和基于新表示的协作共识方法(CoCNR)。CoCP在全局空间中整合多视图信息并进行共识投影,而CoCNR则通过协作编码生成新的数据表示以实现更优聚类。方法利用熵正则化的Wasserstein距离与Wasserstein重心,有效捕捉数据分布间的几何结构,并通过聚合步骤获得统一模型。实验结果表明,所提方法在多个数据集上均优于现有方法,具有良好的

gpt4scribbler的博客 85

npm常用命令 + 前端常用的包管理工具 以及 npm淘宝镜像配置等

npm常用命令 + 前端常用的包管理工具 以及 npm淘宝镜像配置等

@素素~的博客 1703

Vite 任意文件读取漏洞复现(CVE-2026-39363)

Vite开发服务器 WebSocket中的fetchModule方法未实施server.fs访问控制,导致攻击者可通过WebSocket连接并读取服务器上的任意文件(CVE-2026-39363)

iSee857的博客 221

MAC包管理工具安装配置(homebrew,nvm,npm)

本文介绍了在Mac上安装开发环境的详细步骤。首先通过终端命令安装Homebrew包管理工具,并配置环境变量。然后使用Homebrew安装nvm(Node版本管理工具),通过nvm安装指定版本的Node.js

weixin_52947165的博客 700

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

npm配置完全指南:定制你的包管理体验

npm作为JavaScript的包管理器,其灵活的配置系统可以帮助开发者优化工作流程、提升安装效率并保障项目安全。本文将从基础配置文件到高级自定义选项,全面介绍如何通过npm配置打造个性化的包管理体验。 ## 一、npm配置体系解析 npm的配置系统采用**分层优先级机制**,从高到低依次为:命令行参数 > 环境变量 > npmrc文件 > 默认配置。这种设计既保证了临时需求的灵活性,又支持长

gitblog_00260的博客 889

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

NPM包管理全指南:安装、配置与依赖管理

NPM(Node Package Manager)是JavaScript编程语言的包管理器,它是Node.js的默认包管理工具。NPM使得开发者能够安装和管理有成千上万个包的复杂依赖关系。本文将详细介绍如何使用NPM安装包,如何将包添加到项目的中,以及如何维护和更新这些依赖。注册表配置:使用配置自定义NPM注册表。

2401_85812053的博客 5944

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

包管理工具详解npm、yarn、cnpm、npx 发布npm包 npm install以及npm uninstall各参数含义 package文件和package-lock文件内常见配置含义

包管理工具详解npm、yarn、cnpm、npx 发布npm包 npm install以及npm uninstall各参数含义 package文件和package-lock文件内常见配置含义

weixin_58555796的博客 2454

Node.js 中的包与 npm —— 包的概念、格式化时间的两种做法以及包管理配置文件

npm(Node Package Manager)是 Node.js 默认的包管理工具,它允许我们在项目中安装和管理依赖的 JavaScript 库(即包)。npm 是全球最大的开源库生态系统,几乎所有常用的 Node.js 工具和库都可以通过 npm 进行安装和管理。在 npm 中,包指的是可以被 Node.js 应用程序使用的模块或库。包通常包含 JavaScript 文件、资源文件、文档和其他可以重用的代码。每个 npm 包都有一个文件,记录了包的元数据和配置信息。你可以通过命令来安装一个包。

m0_62599305的博客 1126

多包管理器支持:Gradle Node Plugin中NPM、Yarn、PNPM的选择与配置

Gradle Node Plugin是一款强大的构建工具插件,它能让你在Gradle构建中无缝集成Node.js技术栈,包括NPM、Yarn和PNPM等主流包管理器。本文将详细介绍如何在该插件中选择和配置这三种包管理器,帮助你优化前端依赖管理流程。 ## 包管理器概述:NPM、Yarn与PNPM的对比 在现代前端开发中,包管理器是不可或缺的工具。Gradle Node Plugin全面支持目前

gitblog_00423的博客 782
上一篇: 【JS案例】JS实现积分抽奖(内附源码)
下一篇: 包管理工具--》npm的配置及使用(二)
琢鸣
琢鸣 新星创作者: 前端开发技术领域 新星创作者: 前端开发技术领域
博客等级 码龄7年 9626粉丝 53原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

琢鸣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值