包管理工具npm、cnpm、yarn、NVM

[包]英文单词是package,代表了一组特定功能的源码集合
包管理工具:
管理[包]的应用软件,可以对[包]进行下载安装,更新,删除,上传等操作借助包管理工具,可以快速开发项目,提升开发效率
包管理工具是一个通用的概念,很多编程语言都有包管理工具,所以掌握好包管理工具非常重要
前端常用的包管理工具npm 、yarn、cnpm

npm

在这里插入图片描述

npm基本使用

创建一个空目录,然后以此目录作为工作目录启动命令行工具,执行npm init
在这里插入图片描述

1.npm init命令的作用是将文件夹初始化为一个[包],交互式创建package.json文件
2.package.json是包的配置文件,每个包都必须要有package.json
3.package.json内容示例:
在这里插入图片描述

npm搜索包

在这里插入图片描述
创建一个包名字为A,A中安装了包的名字是B,就说B是A的一个依赖包,也会说A依赖于B

require导入npm包基本流程
require(‘uniq’)
1.在当前文件夹下node_modules中寻找同名的文件夹
2.如果1不行,在上级目录中下的node_modules中寻找同名的文件夹,直至找到磁盘根目录

生产环境与开发环境

1.开发环境是程序员专门用来写代码的环境,一般是指程序员的电脑,开发环境的项目一般只能程序员自己访问
2.生产环境是项目代码正式运行的环境,一般是指正式的服务器电脑,生产环境的项目一般每个客户都可以访问

开发依赖与生产依赖

在这里插入图片描述

全局安装

命令行窗口输入:npm i -g nodemon
全局安装完成之后就可以在命令行的任何位置运行;nodemon命令该命令的作用是自动重启node 应用程序

  • 全局安装的命令不受工作目录位置影响
  • 可以通过npm root -g可以查看全局安装包的位置
  • 不是所有的包都适合全局安装,只有全局类的工具才适合,可以通过查看包的官方文档来确定安装方式,
    在这里插入图片描述

环境变量Path

Path是操作系统的一个环境变量,可以设置一些文件夹的路径,在当前工作目录下找不到可执行文件时,就会在环境变量Path的目录中挨个的查找,如果找到则执行,如果没有找到就会报错
在这里插入图片描述
补充说明:

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

安装包依赖

在项目协作中有一个常用的命令就是npm i,通过该命令可以依据package.json和package-lock.json 的依赖声明安装项目依赖
npm i (npm install全写)

node_modules文件夹大多数情况都不会存入版本库

安装指定版本的包、删除依赖

在这里插入图片描述

配置命令别名

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

配置package.json中的scripts属性:

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

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

npm run server
npm run start /start别名比较特别,使用时可以省略run

补充说明:

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

cnpm

cnpm 是一个淘宝构建的 npmjs.com 的完整镜像,也称为『淘宝镜像』,网址https://npmmirror.com/
cnpm 服务部署在国内 阿里云服务器上 , 可以提高包的下载速度
官方也提供了一个全局工具包 cnpm ,操作命令与 npm 大体相同

安装

通过npm安装cnpm:在命令行窗口输入

npm install -g cnpm --registry=https://registry.npmmirror.com

操作命令:

在这里插入图片描述

配置

1.直接配置
2.工具配置
在这里插入图片描述

  • nrm报错解决办法:
解决:  npm install -g nrm open@8.4.2 –save
  • 切换镜像:命令行窗口输入 nrm ls会列出支持的镜像地址,输入nrm use npm

补充说明:

  1. 建议使用第二种方式 进行镜像配置,因为后续修改起来会比较方便
  2. 虽然 cnpm 可以提高速度,但是 npm 也可以通过淘宝镜像进行加速,所以 npm 的使用率还是高于 cnpm
  3. 使用淘宝的没法上传,因为淘宝的是只读镜像,只能下载不能上传

yarn

npm是同步的、yarn是异步的
在这里插入图片描述

yarn安装及常用命令

可以使用npm安装yarn:npm i -g yarn
常用命令:
在这里插入图片描述
这里有个小问题就是 全局安装的包不可用(没有配置到环境变量path中) ,yarn 全局安装包的位置可以通过 yarn global bin来查看,

yarn 配置淘宝镜像

可以通过如下命令配置淘宝镜像:

yarn config set registry https://registry.npmmirror.com/

可以通过 yarn config list 查看 yarn 的配置项

NVM

nvm 全称 Node Version Manager 顾名思义它是用来管理 node 版本的工具,方便切换不同版本的Node.js

使用

nvm 的使用非常简单,跟 npm 的使用方法类似
下载安装:
首先先下载 nvm,下载地址

https://github.com/coreybutler/nvm-windows/releases

选择 nvm-setup.exe 下载即可

常用命令

在这里插入图片描述

扩展内容

npm和yarn的选择

可以根据不同的场景进行选择

  1. 个人项目
    如果是个人项目, 哪个工具都可以 ,可以根据自己的喜好来选择
  2. 公司项目
    如果是公司要根据项目代码来选择,可以通过锁文件判断 项目的包管理工具
    npm 的锁文件为 package-lock.json
    yarn 的锁文件为 yarn.lock
  3. 包管理工具尽量不要混着用

npm发布包、更新包和删除包(了解)

扩展内容

很多语言中都有包管理工具
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Error: Maximum response size reached

错误原因复现 请求下载的文件是4g的,postman报错Error: Maximum response size reached 解决办法 Postman设置请求时长和数据大小 Settings,打开设置面板 postman有默认请求时间,正常的postman请求后端少量数据,返回特别快。但…

Mac idea gradle解决异常: SSL peer shut down incorrectly

系统:mac 软件:idea 解决异常: SSL peer shut down incorrectly 查看有没有安装 gradle -v安装 根据项目gradle提示安装版本 brew install gradle7idea的配置 在settings搜索gradle,配置Local installation,选择自己的安装目录…

用标准的GNU/Linux命令替换Alpine上的精简版命令

Alpine Linux 是一个基于 musl libc 和 busybox 的轻量级Linux发行版,busybox 实现了很多常用类Unix命令的精简版,特点是体积很小,舍弃了很多不常用参数,我们简单对比一下标准Linux自带的 date 命令 和 Alpine下默认的 date 命令便…

Vue-组件中的data

一个组件的data选项必须是一个函数。保证每个组件实例,维护独立的一份数据对象。如下图: 组件一旦封装好了,可以使用多次,比如数字框组件使用了三次: 每次创建新的组件实例,都会重新执行一次data函数&#…

EMAIL-PHP功能齐全的发送邮件类可以发送HTML和附件

EMAIL-PHP功能齐全的发送邮件类可以发送HTML和附件 <?php class Email { //---设置全局变量 var $mailTo ""; // 收件人 var $mailCC ""; // 抄送 var $mailBCC ""; // 秘密抄送 var $mailFrom ""; // 发件人 var $mailSubje…

2023年腾讯暑期实习 笔试原题与答案解析

试卷名称&#xff1a;腾讯2023实习生招聘-技术研究 考试时间&#xff1a;(北京时间)2023-03-26 20:00:00 -- 22:00:00 考试时长&#xff1a;120分钟 第一题 // package Tencent;import java.util.HashSet; import java.util.Scanner;public class Main {public static void …

Omnity 进展月报 | 2024.4.1-4.30

Omnity 大事摘要 1、Octopus 官宣升级为 Omnity。 2、Omnity 4月28号正式上线&#xff0c;实现BTC 和 ICP 之间跨链转账 Runes 资产。 3、为庆祝上线&#xff0c;以符文 HOPE•YOU•GET•RICH 为资产&#xff0c;发红包快速触达大量用户&#xff0c;体验跨链服务。 4、Omni…

【完美解决】使用git时候出现error setting certificate verify locations: CAfile:问题

1、出现场景&#xff1a; 在使用idea的时候&#xff0c;进行git下的push&#xff0c;出现下面的错误&#xff1a; 2、原因分析&#xff1a; 可能因为重装过系统&#xff0c;或者是安装git的位置发生了变化等情况出现。 3、解决方案&#xff1a; 找到git的安装路径&#xf…

Linux基础配置(镜像挂载,FQDN)

CentOS基础配置&#xff1a; 以下是appsrv的基础配置脚本&#xff0c;CentOS系统只需要把appsrv改成需要的主机名即可&#xff08;因为Linux基础配置都差不多&#xff0c;写脚本是最省时间的做法&#xff0c;IP地址的配置一般用nmtui图形化界面工具&#xff09; #!/bin/bash …

什么软件能在桌面上做笔记 好用的桌面笔记软件

一直认为&#xff0c;好记性不如烂笔头。在繁忙的工作和生活中&#xff0c;做笔记能够帮助我抓住那些一闪而过的灵感&#xff0c;也能让我随时回溯重要信息。特别是在电脑桌面上做笔记&#xff0c;更是方便快捷&#xff0c;一目了然。 想象一下&#xff0c;你正在工作中&#…

【web前端2024】简单几步制作web3d《萌宠星球》智体节点模板!

使用dtns.network德塔世界&#xff08;开源的智体世界引擎&#xff09;&#xff0c;策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引擎&#xff08;内嵌了three.js编辑器的定制版-支持以第一视角游览3D场馆&#xff…

Colibri for Mac v2.2.0 原生无损音频播放器 激活版

Colibri支持所有流行的无损和有损音频格式的完美清晰的比特完美播放&#xff0c;仅使用微小的计算能力&#xff0c;并提供干净和直观的用户体验。 Colibri在播放音乐时使用极少的计算能力。该应用程序使用最先进的Swift 3编程语言构建&#xff0c;BASS音频引擎作为机器代码捆绑…

走进CDO的世界:探索其主要职能职责

首席数据官&#xff08;CDO&#xff09;是统筹管理数据资产、系统开展内外部数据开放共享和价值开发的首要负责人&#xff0c;是推动以数据为核心要素的创新转型、合法合规开辟价值增长新空间的关键领导角色。CDO 制度是包括以CDO为首的数据人才队伍的岗位设置、职能职责体系、…

苹果自研大语言模型“Ajax“ 助力iOS 18升级;Stack Overflow与OpenAI建立API合作伙伴关系

&#x1f989; AI新闻 &#x1f680; 苹果自研大语言模型"Ajax" 助力iOS 18升级 摘要&#xff1a;苹果公司预计通过自研大语言模型Ajax来为iOS 18和Siri带来重大升级&#xff0c;但不计划推出类似ChatGPT的AI聊天机器人。Ajax模型基于Google的Jax框架&#xff0c;并…

220V转18V500mA非隔离恒压WT5113

220V转18V500mA非隔离恒压WT5113 亲爱的朋友们&#xff0c;你们是否在为如何提高电源方案而烦恼呢&#xff1f;今天我给大家带来了一款芯片&#xff0c;WT5113宽输出范围非隔离交直流转换芯片&#xff0c;它可是电源方案中的得力助手哦&#xff01; 这款芯片拥有220V降12V、2…

力扣刷题:四数相加Ⅱ

题目详情&#xff1a; 解法一&#xff1a;暴力枚举 对于这道题&#xff0c;我们的第一思路就是暴力枚举&#xff0c;我们可以写一个四层的for循环进行暴力匹配&#xff0c;只要相加的结果等于0就进行统计。但是我们会发现&#xff0c;我们的事件复杂度为O(N^4)事件复杂度非常大…

电度表抄表是什么?什么叫电度表抄表?

一、电度表抄表的概念和作用 电度表抄表是电力系统中一个基本但非常重要的阶段。它指的是对安装在用户处电度表开展载入&#xff0c;记录下来电力消耗的值&#xff0c;便于测算电费的一个过程。此项工作不仅有利于供电公司精确扣除电费&#xff0c;都是监控和管理电力工程应用…

【前端--Vue】组件之间的多种通信方式,一文彻底搞懂组件通信!

本篇将重点讲解vue中的多种组件通信方式&#xff0c;包括【父传子】【子传父】【兄弟组件通信】【依赖注入】等等&#xff0c;并提供具体案例来让小伙伴们加深理解、彻底掌握&#xff01;喜欢的小伙伴们点赞收藏&#xff0c;持续关注哦~&#x1f495; &#x1f49f; 上一篇文章…

浅谈智能电气火灾监控系统的设计及应用

摘要&#xff1a;致电气火灾的原因是多方面的&#xff0c;主要成因包括漏电、绝缘层老化、短路、电火花密集、接地发生故障、电气设备自然、接触不良和电流超负荷等。文章分析电气火灾的成因&#xff0c;并探索电气火灾监控系统的设计方案与注意事项。 关键词&#xff1a;电气…

推荐5个免费的国内平替版GPT

提起AI&#xff0c;大家第一个想到的就是GPT。 虽然它确实很厉害&#xff0c;但奈何于我们水土不服&#xff0c;使用门槛有些高。 不过随着GPT的爆火&#xff0c;现在AI智能工具已经遍布到各行各业了&#xff0c;随着时间的推移&#xff0c;国内的AI工具也已经“百花盛放”了…