NPM使用技巧

NPM使用技巧

  • 前言
  • 技巧
    • 全局模块位置
    • PowerShell报错
    • 安装模块冲突
  • NPM介绍
  • NPM命令
    • 使用方法
    • 基本命令
    • 模块命令
    • 查看模块
    • 运行命令
    • 镜像管理
  • 常用模块
    • rimraf
    • yarn

前言

本文包含NodeJS中NPM包管理器的使用技巧,具体内容包含NPM介绍、NPM命令、常用模块等内容,还包含全局模块位置、PowerShell报错、安装模块冲突等技巧。

技巧

全局模块位置

NPM使用npm install -g命令安装的全局模块一般在用户目录下,位置如下:

C:\Users\[username]\AppData\Roaming\npm

其中,[username]为用户名。

PowerShell报错

使用PowerShell运行NPM安装的脚本时报错,提示在此系统上禁止运行脚本,如下图:
在这里插入图片描述

解决方案:
方案1:使用CMD命令提示符运行此命令。
方案2:管理员身份运行PowerShell,运行下方命令:

set-ExecutionPolicy RemoteSigned

即可在PowerShell中正常运行之前无法运行的脚本,如下图:
在这里插入图片描述

若要恢复PowerShell的设置,可运行如下命令:

set-ExecutionPolicy Default

若要查看当前ExecutionPolicy状态,可以使用如下命令:

set-ExecutionPolicy

安装模块冲突

使用npm install命令安装package.json中的模块时,可能会报peer错误,即安装模块冲突,如下图:
在这里插入图片描述

原因
新版的NodeJS中的NPM版本较高,不兼容老版本创建的package.json文件。

解决方案
方案1:在npm install命令后添加--force(即-f)或--legacy-peer-deps命令。
方案2:将NodeJS卸载重装,降级到12版本。

NPM介绍

NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:

  • 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
  • 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
  • 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

由于新版的NodeJS已经集成了npm,所以安装NodeJS时npm也一并安装好了。

测试是否成功安装,打开CMD命令提示符或PowerShell,命令如下:

npm -v

若出现版本提示表示安装成功,如下图:
在这里插入图片描述

NPM命令

使用方法

打开CMD命令提示符或PowerShell,推荐使用PowerShell,因为可以查看之前使用的命令记录。

基本命令

# 查看 npm 命令列表
npm -h# 查看各个命令的简单用法
npm -l# 查看 npm 的版本
npm -v# 查看 npm 的配置
npm config list -l

模块命令

安装模块

# 本地安装
npm install [module name]# 全局安装
npm install -g [module name]
# 同
npm install [module name] -g# 强制安装
npm install -f [module name]

其中,[module name]为模块名。

安装指定版本
安装指定版本的模块,也适用于降级模块版本

# 安装指定版本的模块
npm install [module name]@[version]# 示例:安装指定版本的jquery
npm install jquery@1.11.0# 示例:安装jquery v1.0中的最新版本
npm install jquery@1

安装所有依赖包
安装当前项目的所有依赖包,即当前目录中package.json中的全部模块,一般使用本地安装方式

npm install

更新npm

npm install -g npm

更新模块

# 升级本地模块
npm update [module name]
# 升级全局模块
npm update -g [module name]

卸载模块

# 卸载本地模块
npm uninstall [module name]
# 卸载全局模块
npm uninstall -g npm uninstall

卸载所有模块
卸载本地所有模块,需安装rimraf模块

npm install -g rimraf
rimraf node_modules

查看模块

查看所有安装模块及版本号

# 查看本地模块
npm list
# 查看全局模块
npm list -g

查看指定模块的版本号

npm list [module name]

运行命令

npm 不仅可以用于模块管理,还可以用于执行脚本。package.json 文件有一个 scripts 字段,可以用于指定脚本命令,供npm直接调用。

# 列出package.json里所有可以执行的脚本命令
npm run# 运行package.json中的start脚本命令
npm run start
# 同
npm start# 运行package.json中的test脚本命令
npm run test
# 同
npm test

镜像管理

设置npm镜像(可选)

设置npm镜像
npm config set registry [resigtry address]
# 设置npm镜像为淘宝镜像
npm config set registry https://registry.npmmirror.com

其中,resistry address为镜像地址。

安装淘宝定制的cnpm工具(可选)

# 安装cnpm工具,并设置registry
npm install -g cnpm --registry=https://registry.npmmirror.com
# 使用cnpm安装模块
cnpm install [module name]

查看镜像

# 查看npm镜像
npm config get registry
# 查看cnpm镜像
cnpm config get registry

常用模块

rimraf

作用:以包的形式包装rm -rf命令,用来删除文件和文件夹的,不管文件夹是否为空,都可删除。

一般使用全局安装方式,这样在任何目录都可以使用此模块。

# 安装
npm install -g rimraf
# 使用
rimraf node_modules

yarn

作用:yarn同npm类似,也是一个软件包管理系统,用于管理 JavaScript 编写的软件包,yarn 的出现是为了弥补 npm 的一些缺陷。

一般使用全局安装方式,这样在任何目录都可以使用此模块。

# 安装
npm install -g yarn
# 移动到项目目录
cd [project path]
# 安装项目所有的依赖包
yarn install

其中,[project path]为项目所在文件目录。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RK3399平台开发系列讲解(内核调试篇)USB摄像头快速测试

🚀返回专栏总目录 文章目录 一、检测设备二、安装必要的库三、 mjpeg-stream 安装四、实时预览沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 本篇介绍如何快速测试 USB 摄像头。 一、检测设备 将 USB 摄像头插上,查看是否找到设备,输入指令:v4l2-ctl --list-d…

谈一谈冷门的C语言爬虫

目录 C语言写爬虫是可行的 C语言爬虫不受待见 C语言爬虫有哪些可用的库和工具 C语言爬虫示例 总结 在当今的编程世界中,C语言相比于一些主流编程语言如Python、JavaScript等,使用范围相对较窄。然而,尽管C语言在爬虫领域的应用并不常见&…

uniapp:蓝牙设备ios与安卓端deviceId不一致问题及ios端获取蓝牙mac地址方法

问题 在uniapp开发项目中,主要是指APP端,使用API接口:uni.getBluetoothDevices或者uni.onBluetoothDeviceFound查找到的蓝牙设备数据里deviceId值不一样: 在安卓中deviceId即mac地址 在ios中deviceId即uuid 如何在ios端也能获取到…

Spring03

Spring03 1.bean的生命周期函数 初始化方法和销毁方法 init-method"初始化方法" destroy-method"销毁方法"2.DI依赖注入 依赖注入(Dependency Injection,DI)是一种设计模式,它用于解耦组件之间的依赖关系…

Django Form实现表单使用及应用场景

首先需要定义一个使用场景: 音乐网站的前端部分可以添加上传歌手的单曲, 这个添加页面就使用django form表单来实现。 目录 数据表内容 歌手表及表模型 单曲表及表模型 演示表单使用 设置路由 创建form.py 视图实例化表单类 模板使用表单对象 表…

Spring系列文章1:Spring入门程序

一、什么是spring 一个java框架、java语言开发,轻量级、开源框架、在j2se、j2ee中都可以使用。它是一个管理对象的容器,Spring 容器不装文本,数字。装的是java对象。 核心技术:ioc、aop 官网地址 https://spring.io 项目列表…

第6章_瑞萨MCU零基础入门系列教程之串行通信接口(SCI)

本教程基于韦东山百问网出的 DShanMCU-RA6M5开发板 进行编写,需要的同学可以在这里获取: https://item.taobao.com/item.htm?id728461040949 配套资料获取:https://renesas-docs.100ask.net 瑞萨MCU零基础入门系列教程汇总: ht…

9月11日,每日信息差

今天是2023年09月11日,以下是为您准备的13条信息差 第一、微软已停止向俄罗斯提供服务,俄罗斯接下来的举动震惊世人!对此俄罗斯回应称,他们将把微软的收费版改为免费版并推广至全球 第二、我国首套海洋漂浮式温差能发电装置完成…

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

包管理工具系列文章目录 一、包管理工具--》npm的配置及使用(一) 二、包管理工具--》npm的配置及使用(二) 三、包管理工具--》发布一个自己的npm包 四、包管理工具--》yarn的配置及使用 五、包管理工具--》其他包管理器之cnpm…

某技术公司技术二面面试题总结

存在一个单体架构的服务,怎么拆分为微服务的架构 将一个单体应用程序拆分成微服务架构是一个复杂的过程,需要深入的计划和实施。以下是一般的步骤和策略,可以帮助您成功地将单体应用程序拆分为微服务: 理解单体应用程序&#xff…

软件设计师学习笔记10-死锁资源数计算+进程资源图+段页式存储

目录 1.死锁资源数计算 1.1死锁 1.2进程管理与死锁资源的计算 2.进程资源图 3.段页式存储 3.1页式存储 3.1.1页式存储组织 3.1.2完整页表及页面淘汰原则 3.1.3页面置换算法(了解一下) 3.2段式存储 1.死锁资源数计算 1.1死锁 (1)死锁的概念:所谓死锁&…

Matlab学习-自定义函数

Matlab学习-自定义函数 常用自定义函数 文章目录 Matlab学习-自定义函数1. 打印时间2. 计算统计参数3. 画图函数 1. 打印时间 function result calculate_time(time)% Function describe : calculate time% Input : time:N*1% Output : result.hour/min/sec hour/min/sec…

构建全面 AI Agent 解决方案:Chocolate Factory 框架的文本到 UI、图表和测试用例生成...

长太不看版:基于领域驱动设计思考的 AI Agent 框架 Chocolate Factory,框架现在还在 PoC 阶段,欢迎加入开发。(当前主要关注于 SDLC AIGC 的场景)。 GitHub:https://github.com/unit-mesh/chocolate-facto…

ffmpeg安装及使用

centos linux下安装ffmpeg 1、下载解压 wget http://www.ffmpeg.org/releases/ffmpeg-3.1.tar.gz tar -zxvf ffmpeg-3.1.tar.gz 2、 进入解压后目录,输入如下命令/usr/local/ffmpeg为自己指定的安装目录 cd ffmpeg-3.1 ./configure --prefix/usr/local/ffmpeg make &&a…

文件上传之图片马混淆绕过与条件竞争

一、图片马混淆绕过 1.上传gif imagecreatefromxxxx函数把图片内容打散,,但是不会影响图片正常显示 $is_upload false; $msg null; if (isset($_POST[submit])){// 获得上传文件的基本信息,文件名,类型,大小&…

Web jQuery—属性、元素、尺寸和位置

jQuery 属性、元素、尺寸和位置 代码下载 jQuery 属性操作 jQuery 常用属性操作有三种:prop() / attr() / data() ; 元素固有属性值 prop() 所谓元素固有属性就是元素本身自带的属性,比如 元素里面的 href ,比如 元素里面的 type。 语…

迷你无人车 Navigation 导航(3)

迷你无人车 Navigation 导航&#xff08;3&#xff09; 自己实现了对于迷你无人车关节的控制&#xff0c;由于原本的关节布置仅支持阿克曼转向&#xff0c;因此先进行阿克曼转向的控制 修改 URDF 文件 添加 transmission 标签&#xff0c;定义关节的驱动 <transmission …

ant-design-vue table 同时勾选或者取消勾选某字段值相同的数据

Ant-design-vue 库中 Table 组件 API 有个 rowKey 属性&#xff1a;表格行 key 的取值&#xff0c;既可以是字符串&#xff0c;也可以是一个函数&#xff0c;它在 rowSelection 选择功能的配置中尤为重要。 在勾选或者取消选中项回调的 onChange 事件中&#xff0c;有两个参数返…

Linux 中的 comm 命令及示例

comm 逐行比较两个排序的文件并写入标准输出;常见的线条和独特的线条。 假设您有两个人员列表,并且要求您找出其中一个列表中可用而另一个列表中不可用的名称,甚至是两个列表中共有的名称。comm是帮助您实现这一目标的命令。它需要两个排序的文件,并逐行比较。在进一步讨论…

Mysql binlog的三种模式statement,row,mixed详解,以及无主键造成复制延时的测试

2.1 Statement 模式的概念 Statement 是基于语句的复制模式。 Statement 模式将数据库中执行的修改操作记录为 SQL 语句&#xff0c;再从数据库上执行相同的 SQL 语句来实现数据同步。 2.2 Statement 模式的优点 Statement 模式的优点是简单明了&#xff0c;易于理解和实现。…