包管理工具npm的安装和使用

包管理工具

管理 包 的应用软件,可以对 包 进行下载 安装,更新,删除,上传 等操作。

借助包管理工具,可以快速开发项目,提升开发效率。

包管理工具是一个通用的概念,很多编程语言都有包管理工具,所以掌握好包管理工具非常重要。

常用的包管理工具

  • npm
  • yarn
  • cnpm

npm

npm 全称 Node Package Manager,翻译为中文意思是 Node的包管理工具。

npm 是node.js官方内置的包管理工具,是必须要掌握的工具。

npm的安装

node.js在安装时会自动安装npm,所以如果你已经安装好了node.js,就可以直接使用npm,可以通过 npm -v查看版本测试号,如果显示版本号说明安装成功,反之安装失败。

npm的基本使用

初始化

创建一个空目录,然后以此目录为工作目录启动命令行工具,指定 npm init

npm init 命令的作用是将文件夹初始化为一个 包 ,交互式创建package.json文件

package.json 是包的配置文件,每个包都必须要有 package.json

package.json 内容示例:

{"name": "1-npm", 		#包的名字"version": "1.0.0", 	#包的版本"description": "", 		#包的描述"main": "index.js", 	#包的入口文件"scripts": {			#脚本配置"test": "echo \"Error: no test specified\" && exit 1"},"author": "", 			#作者"license": "ISC" 		#开源证书
}

初始化的过程中还有一些注意事项:

  1. package name(包名)不能使用中文、大写,默认值是文件夹的名字,所以文件夹名称也不能使用中文和大写。
  2. version(版本号)要求 x.x.x 的形式定义,x 必须是数字,默认值为1.0.0
  3. ISC证书与MIT证书功能上是相同的,关于开源证书扩展阅读。https://www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html
  4. package.json可以手动创建与修改。
  5. 使用npm init -y 或者 npm init --yes 可以极速创建package.json。
搜索包

搜索包的方式有两种:

  • 命令行 npm s/search关键字
  • 网站搜索 npm | Home
下载安装包

 可以通过npm install 和 npm i 命令安装包

# 格式
npm install <包名>
npm i <包名>
# 示例
npm install axios
npm i axios

运行之后文件夹下会增加两个资源:

  • node_modules文件夹:存放下载的包
  • package-lock.json包的锁文件:用来锁定包的版本

安装axios之后,axios就是当前这个包的一个依赖包,有时会简称依赖。

比如我们创建一个包名字为A,A中安装了包名字是B,我们就说B是A的一个依赖包,也会说A依赖B

 require导入npm包的基本流程
  1. 在当前文件夹下 node_modules中寻找同名的文件夹。
  2. 在上级目录中下的node_modules中寻找同名的文件夹,直至找到磁盘根目录。

 生产环境与开发环境

开发环境是程序员 专门用来写代码 的环境,一般是指程序员的电脑,开发环境的项目一般 只能程序员自己访问

生产环境是项目 代码正式运行 的环境,一般是指正式的服务器电脑,生产环境的项目一般 每个客户都可以访问

生产依赖与开发依赖

我们可以在安装时设置选项来区分 依赖的类型,目前分为两类:

类型命令补充
生产依赖

npm i -S axios

npm i --save axios

-S等效于 --save,-S是默认选项

包信息保存在package.json中的dependencies属性

开发依赖

npm i -D less

npm i --save-dev less

-D等效于 --save-dev

包信息保存在package.json中的devDependencies属性

举个例子方便理解,比如说做蛋炒饭需要用到 大米 , 油 , 葱 , 鸡蛋 , 锅 , 煤气 , 铲子 等。

其中 锅 、 煤气 、 铲子 属于开发依赖,只在制作阶段使用,

而 大米 、 油 、 葱 、鸡蛋 属于生产依赖,在制作与最终食用都会用到,

所以 开发依赖 是只在开发阶段使用的依赖包,而 生产依赖 是开发阶段和最终上线运行阶段都用到的依赖包。

全局安装

 可以执行安装选项 -g 进行全局安装

npm i -g nodemon

全局安装完成之后就可以在命令行的任意位置运行nodemon命令,该命令的作用是 自动重启node应用程序

说明:

  • 全局安装的命令不受工作目录位置影响
  • 可以通过 npm root -g 查看全局安装包的位置
  • 不是所有的包都适合全局安装,只有全局类的工具才适合,可以通过查看包的官方文档来确定安装方式
修改windows执行策略

 

windows 默认不允许npm全局命令执行脚本文件,所以需要修改执行策略

  1. 以管理员身份打开powershell命令行
  2. 键入命令 set-ExecutionPolicy remoteSigned
  3. 键入 A 然后敲回车 👌
  4. 如果不生效,可以尝试重启 vscode
 环境变量path

Path是操作系统的一个环境变量,可以设置一些文件夹的路径,在当前目录下找不到可执行文件时,就会在环境变量Path的目录中挨个的查找,如果找到则执行,如果没有找到就会报错。

补充说明:

  • 如果希望某个程序在任何工作目录下都能正常运行,就应该将该程序的所在目录配置到环境变量 Path中
  • windows下查找命令的所在位置:
    • cmd 命令行 中执行 where nodemon
    • powershell命令行 执行 get-command nodemon

安装包依赖

在项目协作中有一个常用的命令就是npm i,通过该命令可以依据package.jsonpackagelock.json的依赖声明安装项目依赖

npm i
// 或者
npm install

安装指定版本的包

项目中可能会遇到版本不匹配的情况,有时就需要安装指定版本的包,可以使用下面的命令的

## 格式
npm i <包名@版本号>
## 示例
npm i jquery@1.11.2

删除依赖

项目中可能需要删除某些不需要的包,可以使用下面的命令

## 局部删除
npm remove uniq
npm r uniq
## 全局删除
npm remove -g nodemon

配置命令别名

通过配置命令别名可以更简单的执行命令

配置 package.json 中的 scripts 属性

{"scripts": {"server": "node server.js","start": "node index.js",},
}

配置完成之后,可以使用别名执行命令

npm run server
npm run start

不过 start 别名比较特别,使用时可以省略 run

npm start

补充说明:

  • npm start 是项目中常用的一个命令,一般用来启动项目
  • npm run有自动向上级目录查找的特性,跟 require 函数也一样
  • 对于陌生的项目,我们可以通过查看 scripts 属性来参考项目的一些操作

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

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

相关文章

likeshop多商户单商户商城_likeshop跑腿源码_likeshop物品租赁系统开源版怎么配置小程序对接?

本人是商业用户所以能持续得到最新商业版&#xff0c;今天我说下likeshop里面怎么打包小程序&#xff0c;大家得到程序时候会发现它有admin目录 app目录 server目录 这三个目录分别是做什么呢&#xff1f; 1.admin目录 下面都是架构文件使用得是Node.js打包得&#xff0c;至于…

管道通信与Linux命令的执行-(读书笔记-十三)

|前一个命令的输出作为后一个命令的输入。 在Linux中&#xff0c;|符号是一个管道符号&#xff0c;用于将前一个命令的输出作为后一个命令的输入。这种机制允许你将多个命令组合在一起&#xff0c;以执行复杂的操作。下面是一些基本的例子&#xff1a; 查看当前目录下的文件列…

数据互通新纪元,企业如何实现系统无缝对接?

一、客户介绍 某文化发展有限公司&#xff0c;是一家在二次元文化领域深耕的领先企业&#xff0c;自成立以来&#xff0c;始终致力于为广大二次元爱好者提供丰富多样的正版衍生品和独特的文化体验。作为一家专注于二次元周边产品的公司&#xff0c;该公司拥有全面的产品线&…

网站访问免费升级成 HTTPS——值得收藏

实现HTTPS协议可以分为四个主要步骤&#xff0c;以确保网站数据传输的安全性。以下是简明清晰的流程概述&#xff1a; 1. 申请SSL证书 - SSL证书是实现HTTPS的基础&#xff0c;它包含了网站的身份信息以及公钥等。首先&#xff0c;你需要从受信任的证书颁发机构(CA)申请一个SSL…

新建的springBoot WEB项目无法自动返回html模版(gradle+kotlin版本)

最近研究了springBoot创建web项目&#xff0c; 第一步服务端返回字符串没有问题&#xff0c;第二步返回html时&#xff0c;还是返回的字符串。 文章目录 一、参考方案二、新建springBoot web项目三、启动项目的三种方式 一、参考方案 将控制器类的 RestController 改为 Contro…

Listview控件的5种视图

在C#中&#xff0c;ListView控件是用于显示和编辑列表数据的常用控件。它可以显示数据项的列表&#xff0c;并允许用户对列表中的数据进行操作。 ListView控件有五种视图模式&#xff0c;分别是&#xff1a; LargeIcon视图&#xff1a;在此视图中&#xff0c;每个数据项都显示…

如何剪辑视频中不想要的片段?教你轻松剪辑

如何剪辑视频中不想要的片段&#xff1f;在视频编辑的精湛艺术中&#xff0c;精确剪辑掉不想要的片段无疑是提升视频品质和专业水准的关键一环。技术的进步使我们得以借助多种高效、易用的视频剪辑软件&#xff0c;轻松去除冗余&#xff0c;保留精华&#xff0c;从而创作出更加…

大模型模型简化机器人训练;简单易用的 3D 工具Project Neo;特斯拉放出了擎天柱机器人最新训练视频

✨ 1: DrEureka 利用大语言模型自动化将机器人仿真环境训练结果转移到真实世界 DrEureka是一种利用大型语言模型&#xff08;LLMs&#xff09;自动化和加速从仿真&#xff08;sim&#xff09;到现实世界&#xff08;real&#xff09;转移的技术。在机器人技能学习领域&#x…

使用socat 做端口转发 调试设备

使用 socat 监听设备的端口&#xff0c;转发到PC的 一个sniff 程序上&#xff0c;查看wireshark 或者直接用 scapy 进行分析 有了socat 也可以做 nat 映射

MySQL mysqldump备份恢复

目录 1. 备份类型 2. 逻辑备份VS物理备份 3. mysqldump工具 3.1 备份命令格式 3.2 备份选项 3.3 备份全库(结构和数据) 3.4 备份全库(仅结构) 3.5 备份全库(仅数据) 3.6 备份单个数据库(结构和数据) 3.7 备份单个数据库(仅结构) 3.8 备份单个数据库(仅数据) 3.9…

低代码系统能够解决哪些痛点?

不同的应用场景下&#xff0c;低代码系统解决的痛点是不一样的。工业应用场景中的组态软件应该说是最早的低代码系统了。以 Topstack 为代表的Web 组态软件&#xff0c;其核心功能设备数据采集、图形监控画面、数据报表、数据看板、业务逻辑开发等&#xff0c;都是无代码或低代…

个人出租房屋收入需汇算吗?柯桥会计培训

2023年度个人所得税综合所得汇算清缴正在进行&#xff0c;个人出租房屋的收入需并入汇算清缴吗&#xff1f;汇算最后一步显示免申报是什么意思&#xff1f; 1 个人出租房屋的收入需并入汇算清缴吗&#xff1f; 答&#xff1a;不用。根据《国家税务总局关于办理2023年度个人所…

UaExpert(OPCUA上位机第三方工具)通过OPCUA协议读写PLC 1500数据

一、CPU1500配置参数 1.激活OPC UA服务器 2.选择许可证&#xff08;所需要的许可证类型&#xff09; 3.启用访客认证&#xff08;如果需要上位机输入用户信息访问&#xff0c;则需要添加用户名和密码&#xff09; 4.选择TCP/IP&#xff0c;本地仿真选择local、single adapt…

基于大模型的idea提炼:围绕论文和引用提炼idea之ResearchAgent

前言 对本博客比较熟悉的朋友知道&#xff0c;我司论文项目组正在基于大模型做论文的审稿(含CS英文论文审稿、和金融中文论文审稿)、翻译&#xff0c;且除了审稿翻译之外&#xff0c;我们还将继续做润色/修订、idea提炼(包含论文检索)&#xff0c;是一个大的系统&#xff0c;包…

CVE-2022-32250漏洞原理

CVE-2022-32250漏洞原理 原创 hope 蚁景网安 2024-05-06 20:00 湖南 前言 在nftales中存在着集合(sets)&#xff0c;用于存储唯一值的集合。sets 提供了高效地检查一个元素是否存在于集合中的机制&#xff0c;它可以用于各种网络过滤和转发规则。 而CVE-2022-32250漏洞则是由…

【PX4-AutoPilot教程-TIPS】Matlab使用ROS Toolbox编译MAVROS2消息报错缺少geographic_msgs消息

Matlab使用ROS Toolbox编译MAVROS2消息报错缺少geographic_msgs消息的解决方法 问题描述解决方法 环境&#xff1a; MATLAB : R2022b ROS Toolbox : 1.6 Windows &#xff1a;Windows 10 22H2 ROS &#xff1a;ROS2 Foxy 问题描述 在使用Matlab的ROS Toolbox工具箱编译与…

五分钟了解等级保护、风险评估和安全测评三者的区别和联系?

等级保护 基本概念&#xff1a;网络安全等级保护是指对国家秘密信息、法人和其他组织和公民的专有信息以及公开信息和存储、传输、处理这些信息的信息系统分等级实行安全保护&#xff0c;对信息系统中使用的安全产品实行按等级管理&#xff0c;对信息系统中发生的信息安全事件…

Leetcode—622. 设计循环队列【中等】

2024每日刷题&#xff08;128&#xff09; Leetcode—622. 设计循环队列 实现代码 class MyCircularQueue { public:MyCircularQueue(int k): q(k) {qSize k;}bool enQueue(int value) {if(isFull()) {return false;}q[rear] value;rear (rear 1) % qSize;deflag false;…

“A”分心得:我的云计算HCIE学习之路

大家好&#xff0c;我是誉天云计算HCIE周末班梁同学&#xff0c;在誉天老师和同学们的帮助下&#xff0c;我终于在4月24日顺利通过了云计算3.0 HCIE的认证考试&#xff0c;而且获得了A&#xff0c;这是让我特别惊喜的&#xff0c;功夫不负有心人。 我日常的工作是网络运维&…

Gin 框架的使用

1、Gin 快速开发 1.1、环境准备 1.1.1、导入 gin 依赖 这里就叫 gin 依赖了&#xff0c;在 Goland 命令行中输入下面的命令&#xff1a; go get -u github.com/gin-gonic/gin 1.1.2、设置代理 如果下载失败&#xff0c;最好设置一下代理&#xff0c;在 cmd 命令行中输入下…