Node【二】NPM
文章目录
- 🌟前言
- 🌟NPM使用
- 🌟NPM使用场景
- 🌟NPM的常用命令
- 🌟NPM命令使用介绍
- 🌟 使用NPM安装模块
- 🌟 下载三方包
- 🌟 全局安装VS本地安装
- 🌟 本地安装
- 🌟 全局安装
- 🌟 全局模块路径查看与路径修改
- 🌟 卸载模块
- 🌟 更新模块
- 🌟 搜索模块
- 🌟 NPM服务器发布包
- 🌟NPM换源
- 🌟 nrm
- 🌟 全局安装 nrm:
- 🌟 nrm ls 列出来现在已经配置好的所有的原地址
- 🌟 nrm use是切换到哪个源上
- 🌟 nrm add添加源
- 🌟 nrm del删除源
- 🌟 nrm test测试源的响应时间,可以作为使用哪个源的参考
- 🌟 使用淘宝 NPM 镜像
- 🌟 安装cnpm
- 🌟安装包
- 🌟同步模块
- 🌟其它命令
- 🌟写在最后

🌟前言
哈喽小伙伴们,新的专栏 Node已开启;这个专栏里边会收录一些Node的基础知识和项目实战;今天我们开始这个专栏的第二篇文章,带领大家初识一下NPM;让我们一起来看看吧🤘
🌟NPM使用
Node Package Manager 简称NPM,是Node.js的包管理器。Node本身提供了一些基本API模块,但是这些基本模块难以满足开发者需求。Node需要通过使用NPM来管理开发者自我研发的一些模块,并使其能够共用与其他开发者。简单来说,NPM就是Node.js的包管理器。
🌟NPM使用场景
- 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
- 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
- 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
Nodejs已经集成安装了npm,可以通过输入 npm -v
来测试是否成功安装。命令如下,出现版本提示表示安装成功:
$ npm -version
2.15.8
升级更新NPM
$ sudo npm install npm -g
🌟NPM的常用命令
序号 | 命令 | 描述 |
---|---|---|
1 | npm -v | 显示版本,检查npm 是否正确安装。 |
2 | npm install express | 安装express模块 |
3 | npm install -g express | 全局安装express模块 |
4 | npm uninstall express | 卸载指定的模块 |
5 | npm link express | 把全局目录下的express模块链接到本地的node_modules下 |
6 | npm list | 列出已安装模块 |
7 | npm search express | 搜索指定的NPM包 |
8 | npm show express | 显示模块详情 |
9 | npm update | 升级当前目录下的项目的所有模块 |
10 | npm update express | 升级当前目录下的项目的指定模块 |
11 | npm update -g express | 升级全局安装的express模块 |
12 | npm init | 通过向导的方式生成package.json文件 |
13 | npm adduser | 添加用户 在npm官网注册的账号 |
14 | npm publish . | 可以发布自己制作的包到NPM服务器 |
15 | npm unpublish <包名>@<版本号> | 可以撤销发布自己发布过的某个版本包。 |
🌟NPM命令使用介绍
🌟 使用NPM安装模块
有一个简单安装任何Node.js模块,语法如下:
$ npm install <Module Name>
例如,下面是安装一个著名的Node.jsweb框架模块的命令叫 express:
$ npm install express
现在,你可以在js文件中使用此模块如下:
var express = require('express');
🌟 下载三方包
NPM建立了一个NodeJS生态圈,NodeJS开发者和用户可以在里边互通有无。
当你需要下载第三方包时,首先要知道有哪些包可用。npmjs.com提供了可以根据包名来搜索的平台,但是如果不知道包名可以百度一下。知道了包名后,就可以使用命令去安装了,例如:Express
npm install express
下载完成之后,express包就放在了工程目录下的node_modules
目录中,在代码中只需要通过reuqire('express')
的方式去引用,无需指定包路径。
以上命令默认下载最新版本第三方包,如果要下载指定版本,可以在包名后面追加@<version>
,例如通过如下命令可以下载0.0.1版本的express。
npm install express@0.0.1
如果使用到的第三方包比较多,在终端下一个包一条命令的安装非常不方便,因此NPM对package.json
的字段做了扩展,允许在其中添加三方包依赖。
npm install express --save
{"name":"test","main":"./lib/main.js","dependencies":{"express":"3.2.1"}
}
这样处理后,在工程目录下就可以使用npm install
命令批量安装三包了。最重要的是,当以后吧test
项目上传到了NPM服务器,别人下载这个包时,NPM会根据包中声明的三方依赖包进行自动下载依赖。这样用户只需要关心要使用的包,不用管其依赖的三方包。
🌟 全局安装VS本地安装
🌟 本地安装
默认情况下,NPM安装指定包默认会安装到本地。本地安装指的是包安装在当前目录中node_modules文件夹中。本地安装的包都可以通过require()方法进行访问。例如我们安装Express模块:
$ npm install express
列出所有本地安装的模块
$ npm ls
本地安装request模块:
npm install request
在实际工作中,安装包时可能需要指定包的版本号,命令格式如下:
npm install <包名>@<版本号>
例如,安装2.44版本的request模块:
npm install request@2.44
也可以使用版本号范围,安装某一版本范围的包版本。比如,安装版本号前缀为2.4的版本的request模块:
npm install request@2.4.x
可以通过以下命令,安装版本号大于2.0的request模块:
npm install request@">2.0"
还可以使用如下命令组合,安装指定范围的版本号的包:
npm install request@">=2.0 <2.5"
🌟 全局安装
全局安装包都存储在系统目录中。我们可以在nodejs的CLI(命令行界面)使用,但是不能直接使用require()方法进行访问。例如安装http-server包:
//全局安装 -g
$ npm install -g http-server
//使用node CLI
$ http-server
🌟 全局模块路径查看与路径修改
查看部分npm默认设置
npm config ls
查看全部npm默认设置
npm config ls -l
npm包全局安装目录:
- windows:
C:\Users\Administrator\AppData\Roaming\npm
- MacOSX:
/usr/local/lib/node_modules
修改全局模块安装路径
npm config set prefix "D:\install\node\node_global"
npm config set cache"D:\install\node\node_cache"
🌟 卸载模块
使用下面的命令卸载Node.js模块
npm uninstall express
🌟 更新模块
更加package.json并更新
npm update express
🌟 搜索模块
搜索使用NPM包名
npm search express
🌟 NPM服务器发布包
第一次使用NPM发布自己的包需要在npmjs.com注册一个账号
npm adduser # 添加用户 在npm官网注册的账号
Username: allcky # 用户名
Password: # 密码
Email: (this IS public) allcky@qq.com
npm publish . # 可以发布自己制作的包到NPM服务器
npm unpublish <包名>@<版本号> # 可以撤销发布自己发布过的某个版本包。
🌟NPM换源
npm全称Node Package Manager,是node.js的模块依赖管理工具。由于npm的源在国外,所以国内用户使用起来各种不方便。下面整理出了一部分国内优秀的npm镜像资源,国内用户可以选择使用。
🌟 nrm
nrm 是一个管理 npm 源的工具。用过 ruby 和 gem 的同学会比较熟悉,通常我们会把 gem 源切到国内的淘宝镜像,这样在安装和更新一些包的时候比较快。nrm 同理,用来切换官方 npm 源和国内的 npm 源(如: cnpm),当然也可以用来切换官方 npm 源和公司私有 npm 源。
包名 | 网址 |
---|---|
nrm | http://www.cnblogs.com/songqingbo/articles/5611588.html |
🌟 全局安装 nrm:
npm i nrm -g
🌟 nrm ls 列出来现在已经配置好的所有的原地址
查看当前 nrm 内置的几个 npm 源的地址:
# nrm ls
结果如下:npm ---- https://registry.npmjs.org/cnpm --- http://r.cnpmjs.org/
* taobao - https://registry.npm.taobao.org/nj ----- https://registry.nodejitsu.com/rednpm - http://registry.mirror.cqupt.edu.cn/npmMirror https://skimdb.npmjs.com/registry/edunpm - http://registry.enpmjs.org/
🌟 nrm use是切换到哪个源上
nrm use npm
🌟 nrm add添加源
nrm add <registry> <url> [home]
🌟 nrm del删除源
nrm del <registry>
🌟 nrm test测试源的响应时间,可以作为使用哪个源的参考
nrm test
🌟 使用淘宝 NPM 镜像
淘宝 NPM 镜像是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。
你可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:
🌟 安装cnpm
$ npm install -g cnpm
这样就可以使用 cnpm 命令来安装模块了:
🌟安装包
$ cnpm install [模块名]
🌟同步模块
直接通过 sync 命令马上同步一个模块, 只有 cnpm 命令行才有此功能:
cnpm sync [模块名]
🌟其它命令
支持 npm 除了 publish 之外的所有命令, 如:
$ cnpm info [模块名]
🌟写在最后
更多Node知识以及API请大家持续关注,尽请期待。各位小伙伴让我们 let’s be prepared at all times!
✨原创不易,还希望各位大佬支持一下!
👍 点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!
相关文章:

Node【二】NPM
文章目录🌟前言🌟NPM使用🌟NPM使用场景🌟NPM的常用命令🌟NPM命令使用介绍🌟 使用NPM安装模块🌟 下载三方包🌟 全局安装VS本地安装🌟 本地安装🌟 全局安装&…...

【2023最新】超详细图文保姆级教程:App开发新手入门(2)
上章节我们已经成功的创建了一个 App 项目,接下来我们讲述一下,如何导入项目、编辑代码和提交项目代码。 Let’s Go! 4. 项目导入 当用户创建一个新的应用时,YonStudio 开发工具会自动导入模板项目的默认代码,不需要手动进行代…...
sftp使用
Client端使用Server端的账户username,sftp登录Server,除了IP地址,也可以使用/etc/hosts定义的域名,注意,Client的默认路径:Shell中的当前路径,Server的默认路径:server账户家目录 …...
FastGithub---------不再为访问github苦恼
声明:只解决github加速神器,解决github打不开、用户头像无法加载、releases无法上传下载、git-clone、git-pull、git-push失败等问题。 github为什么打不开? 其实不用加速的情况下,使用5G是可以打开的,只是资源加载…...
Spring Boot AOP @Pointcut拦截注解的表达式与运算符
项目场景: 这里主要说下Spring Boot AOP中Pointcut拦截类上面的注解与方法上面的注解,怎么写表达式怎么,还有Pointcut中使用运算符。 PointCut 表达式 拦截注解的表达式有3种:annotation、within、target 1、annotation 匹配有…...

2023年第十四届蓝桥杯javaB组省赛真题
👨💻作者简介:练习时长两年半的java博主 📖个人主页:君临๑ 🎞️文章介绍:2023年第十四届蓝桥杯javaB组省赛真题 🎉所属专栏:算法专栏 🎁 ps:点…...
CefSharp.WinForms 112.2.70最新版体验
一、准备 下载最新包及依赖包(对应.NET4.5.2,后续版本可能4.6.2+)到packages中,本地升级更快 NuGet Gallery | CefSharp.WinForms 112.2.70 NuGet Gallery | CefSharp.Common 112.2.70 NuGet Gallery | cef.redist.x64 112.2.7 NuGet Gallery | cef.redist.x86 112.2.…...

leetcode每日一题:数组篇(1/2)
😚一个不甘平凡的普通人,日更算法学习和打卡,期待您的关注和认可,陪您一起学习打卡!!!😘😘😘 🤗专栏:每日算法学习 💬个人…...

每个企业经营者都应该了解的几个网络安全趋势
每个企业主都应了解的一些网络安全趋势: 1. 对实时数据可见性的需求增加 根据 IBM 发布的调查数据,企业发现并遏制漏洞的平均时间为 277 天。这种漏洞得不到解决的时间越长,泄露的数据就越多。这反过来会对您的业务产生更大的影响。企业需要…...
IDEA操作MongoDB快速上手开发
写在前面:最近在公司实习,需要完成一个实习任务。这个任务用的是SSH框架,数据库需要使用mongoDB完成。由于刚接触MongoDB,所以不是很熟练,在网上查找了大量的资料,许多都是抄来抄去的,运行一堆错误。如今&a…...

从FPGA说起的深度学习(六)-任务并行性
这是新的系列教程,在本教程中,我们将介绍使用 FPGA 实现深度学习的技术,深度学习是近年来人工智能领域的热门话题。在本教程中,旨在加深对深度学习和 FPGA 的理解。用 C/C 编写深度学习推理代码高级综合 (HLS) 将 C/C 代码转换为硬…...

5.39 综合案例2.0 - STM32蓝牙遥控小车4(体感控制)
综合案例2.0 - 蓝牙遥控小车4- 体感控制成品展示案例说明器件说明小车连线小车源码遥控手柄遥控器连线遥控器代码1.摇杆PS2模块说明2.六轴MPU-6050说明成品展示 案例说明 用STM32单片机做了一辆蓝牙控制的麦轮小车,分享一下小车的原理和制作过程。 控制部分分为手机…...

Scala之面向对象
目录 Scala包: 基础语法: Scala包的三大作用: 包名的命名规范: 写包的好处: 包对象: 导包说明: 类和对象: 定义类: 封装: 构造器: 主从…...

深度学习目标检测项目实战(四)—基于Tensorflow object detection API的骨折目标检测及其界面运行
深度学习目标检测项目实战(四)—基于Tensorflow object detection API的骨折目标检测及其界面运行 使用tensorflow object detection进行训练检测 参考原始代码:https://github.com/tensorflow/models/tree/master/research 我用的是1.x的版本 所以环境必须有gpu版…...

嵌入式工程师如何快速的阅读datasheet的方法
目录 ▎从项目角度来看datasheet ▎各取所需 ▎最后 Datasheet(数据手册)的快速阅读能力,是每个工程师都应该具备的基本素养。 无论是项目开始阶段的选型还是后续的软硬件设计,到后期的项目调试,经常有工程师对着英…...
(三)合约广告
1. 广告位(CPT)合约 系统:广告排期系统 网站把某一个广告位卖给广告商,这段时间归广告商所有,到点了下线 (1)流量选择的维度:时间段、地域等 (2)典型场景…...

【Android -- 软技能】分享一个学习方法
前言 很多人都想通过学习来提升自己,但是,可能因为两个问题,阻碍了自己的高效提升: 学什么? 怎么学? 本文将从自己的学习实践出发,针对这两个问题,给出自己的一套学习流程。 1…...
Python-DQN代码阅读(10)
目录 1.代码 1.1 代码阅读 1.2 代码分解 1.2.1 f open("experiments/" str(env.spec.id) "/performance.txt", "a") 1.2.2 f.write(str(ep) " " str(time_steps) " " str(episode_rewards) " " str(…...

MongoDB入坑
MongoDB入坑一、体系架构1、简介2、MongoDB VS RDBMS3、文件4、体系结构二、权限管理1、开启2、角色三、存储引擎四、备份 & 恢复五、高可用0、主从复制1、副本集2、分片一、体系架构 1、简介 DBMS No.5;NoSQL Document No.1 1)BSON BSON(Binary …...

【论文总结】针对操作系统级虚拟化的抽象资源攻击
介绍 这是一篇来自2021CCS的论文,作者有Nanzi Yang, Wenbo Shen, Jinku Li, Yutian Yang, Kangjie Lu, Jietao Xiao, Tianyu Zhou, Chenggang Qin, Wang Yu, Jianfeng Ma, Kui Ren。 概述 本文的贡献如下: 新的攻击面:作者揭示了一个影响操…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...

Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...