2.nodejs安装/yarn使用/循环事件

2023-11-05

1、nodejs安装

1.1、基本安装

从nodejs官网https://nodejs.org/en/下载对应包,生成环境建议使用LTS版本。在https://nodejs.org/en/docs/有使用相关文档说明

安装完成之后我们可以通过

#查看node版本
node -v

 

1.2、修改npm安装目录

 我们可以通过npm config ls命令查看安装目录

修改npm安装目录】也就是修改npm的安装目录

# 目录
npm config set prefix "D:\Develop\nvm\npm"
# 缓存目录
npm config set cache "D:\Develop\nvm\npm\cache"

 

1.3、npm使用

安装npm后,默认的远程仓库地址为:http://registry.npmjs.org;查看当前npm远程仓库地址:

npm config get registry

解决npm仓库问题,我们可以使用淘宝的npm仓库;具体操作如下:

#设置npm仓库为淘宝镜像地址
npm config set registry https://registry.npm.taobao.org
#查看是否安装成功
npm config get registry

【npm常用命令】

(1)npm install xxx --save或者npm  i xxx -S: 安装第三方模块,在pageage.json文件中能看见依赖;注意npm i yyy  -g表示全局安装,一般是把带有指令集的包需要全局安装,如browseify。

(2)npm aduit fix:检测项目依赖的一些问题并修复。

(3)npm view  zzzz  versions:查看npm远程仓库中zzzz包的所有版本信息。

(4)npm view yyy :查看npm仓库中yyy包的最新版本。

(5)npm ls   xxx:查看我们所安装的xxx包的版本。

1.4、webstrom配置nodejs

File ---> Settings ---> Languages & Frameworks ---> Node.js and NPM

2.yarn应用

2.1、yarn安装

Yarn发布于2016年10月,截至当前2019年1月,gitHub上的Start数量为:34.3k,已经超过npm很多了,yarn使用本地缓存,需互联网连接就能安装本地已经缓存的依赖项,安装方法:

npm install -g yarn 

2.2、yarn常见命令

  1. yarn --version。
  2. yarn init  //生成package.json   !!!注意生成的包名不能有中文,大写
  3. yarn global package (全局安装)     。
  4. yarn add package (局部安装)。
  5. yarn add package --dev (相当于npm中的--save-dev)。
  6. yarn remove package。
  7. yarn list //列出已经安装的包名。
  8. yarn info packageName //获取包的有关信息。
  9. yarn //安装package.json中的所有依赖。

3、nodejs中global

【node端js组成部分】

(1)没有BOM,因为服务器不需要,服务端没有浏览器对象。

(2)没有DOM,因为没有浏览器窗口。

(3)几乎包含了所有的ES规范。

(4)没有了window,但是取而代之的是一个叫做global的全局变量

//node运行返回结果是:{}
console.log(this);

在node中禁止函数的this指向global,而是指向一个空对象。

【看下一global

console.log(global);

(1)clearImmediate:清空立即执行函数;
(2)clearInterval
:清除循环定时器;
(3)clearTimeout
:清除延迟定时器;
(4)setImmediate
:设置立即执行函数;
(5)setInterval
:设置循环定时器;
(6)setTimeout
:设置延迟定时器;

//延迟定时器
setTimeout(()=>{
  console.log("setTimeout所指定的回调函数执行了")
},1000);
console.log("我是主线程上的代码");

//立即执行函数
setImmediate(()=>{
  console.log('我是setImmediate指向的回调')
});
// 用于设置立即执行函数
process.nextTick(()=>{
  console.log('process.nextTick所指定的回调执行了');
});

 

4、node事件循环模型

查看官网:https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick/

【第一阶段times定时器阶段】setTimeout、setInterval

(1)开始计时,

(2)执行定时器的回调。

【第二阶段pending callbacks系统阶段】

【第三阶段idle,prepae准备阶段】

【第四阶段poll轮训阶段,核心】

(1)如果回调队列里有待执行的回调函数:从回调队列中取出回调函数,同步执行(一个一个顺序执行);直到回调队列为空了,或者达到系统最大限度。

(2)如果回调队列为空:

①如果设置setImmediate,进入下一个阶段也就是check阶段;

②如果设置setImmediate,在此阶段停留,等待回调函数插入回调队列;若定时器到点了,进入下一个check阶段,原因是:为了走第五阶段和第六阶段,最终又要开始第一个阶段

【第五阶段check阶段】专门用于执行setImmediate所设置的回调

【第六阶段close callbacks阶段】关闭回调阶段。

注意:process.nextTick()能在任意阶段优先执行(除主线程)。

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2.nodejs安装/yarn使用/循环事件 的相关文章

  • 在VUE中使用ElementUI的常用组件

    Layout布局 ElementUI将一行分为24栏 通过
  • Qt之信号与槽

    目录 信号与槽的概念 实现对象与对象之间的通信 信号 槽 信号与槽的连接 1 连接方式 2 连接规则 3 连接类型 信号与槽的概念 实现对象与对象之间的通信 当一个对象发生了改变会发送一个信号通知另一个对象执行一个函数 这个函数被称为槽 信
  • img标签的onerror事件

    有时 img标签中的src图片加载失败 原来的图片位置会出现一个碎片图标 用户体验会下降 通过百度 可以给img标签加背景图片 代码如下 headLogo img display block width 270px height 60px
  • mmdetection结果可视化

    import os from mmdet apis import init detector inference detector config file home lgh Desktop ours config py checkpoint
  • 使用Nvidia Jetson TX2进行人脸检测

    环境 Jetson TX2 JetPack 3 1 构建 1 下载代码 git clone https github com AastaNV Face Recognition 2 进入Face Recognition文件夹 cd Face
  • Nginx停止服务和各种命令

    1 停止Nginx服务的四种方法 从容停止服务 这种方法较stop相比就比较温和一些了 需要进程完成当前工作后再停止 nginx s quit 立即停止服务 这种方法比较强硬 无论进程是否在工作 都直接停止进程 nginx s stop s
  • k-均值聚类简介

    k 均值聚类 将训练集分成k个靠近彼此的不同样本聚类 因此我们可以认为该算法提供了k 维的one hot编码向量h以表示输入x 当x属于聚类i时 有hi 1 h的其它项为零 k 均值聚类提供的one hot编码也是一种稀疏表示 因为每个输入
  • C编程实例

    1 任意输入 3 个整数 编程实现对这 3 个整数由小到大进行排序 实现过程 1 定义数据类型 本实例中 a b c t 均为基本整型 2 使用输入函数获得任意 3 个值赋给 a b c 3 使用 if 语句进行条件判断 如果 a 大于 b
  • python dict无需判断key存在即可追加写入

    使用dict setdefault 可设置一个默认值 如果key已存在 就不会有其他操作 借此我们可以不用在追加数据时判断key的存在 my dict 建立一个空字典 my dict setdefault key 设置默认键 print a
  • mysql实习报告总结_MYSQL实训心得

    随时光游走 阳光穿过树叶的间隙 我们重新踏入这座美丽的校园 首先迎接我们的便是为时一周的 MYSQL 实训 在这短短的一周内 我们获益匪浅 在实训的开始 我们小组分析了老师给出的两个任务 然后一致决定研究第一个任务 我们首先讨论了处理任务的
  • 【手把手教你】使用pyfinance进行证券收益分析

    pyfinance简介 在查找如何使用Python实现滚动回归时 发现一个很有用的量化金融包 pyfinance 顾名思义 pyfinance是为投资管理和证券收益分析而构建的Python分析包 主要是对面向定量金融的现有包进行补充 如py
  • 汇编语言与微机原理(1)基础知识

    前言 1 本人使用的是 王爽老师的汇编语言第四版和 学校发的微机原理教材配合学习 2 推荐视频教程 通俗易懂的汇编语言 王爽老师的书 贺老师C站账号网址 3 文章配套资料 Github仓库链接 4 本文是介绍8086汇编语言 汇编语言简介
  • 基于51单片机的心率计脉搏体温测量仪WIFI传输APP设计方案原理图

    系统的功能分析及体系结构设计 末尾附文件 系统功能分析 本系统采用STC89C52单片机 LCD1602液晶 脉搏传感器 温度传感器DS18b20 WIFI模块电路设计而成 1 LCD1602液晶第一行显示设计信息 第二行显示心率和温度 2
  • 嵌入式软件开发之程序分层(二)

    前言 该内容是工作一年来通过上网或其他方式不断搜索 实践 总结出来的嵌入式软件开发经验 本文仅适用于单片机的裸机开发 希望能帮到正在学习这方面的朋友 如有不好的地方 请多多见谅 在嵌入式软件开发过程中 在程序架构的搭建完成之后 为了提高项目
  • 深度学习速成(5)torch.nn.Module类

    nn Module 是PyTorch中的一个基础类 nn即是Neural Networks 用于构建神经网络模型 所有的神经网络模型都必须继承于nn Module类 并实现 forward 方法来定义模型的前向传播过程 nn Module类
  • nginx 配置静态网页

    nginx 配置静态网页 进入配置文件 etc nginx conf d default conf 配置的时候小伙伴们一定要记得先备份一份文件 这样方便后续出错恢复 server listen 端口号 server name IP loca
  • 解决Springboot GET请求参数过长的情况

    项目场景 使用Spring Boot进行项目开发 解决Springboot GET请求参数过长的情况 问题描述 报错信息 Springboot GET请求参数过长抛出异常 Request header is too large 的问题 现象
  • 华为OD机试 - 冠亚军排名,奖牌榜排名(Java)

    题目描述 2012伦敦奥运会即将到来 大家都非常关注奖牌榜的情况 现在我们假设奖牌榜的排名规则如下 首先gold medal数量多的排在前面 其次silver medal数量多的排在前面 然后bronze medal数量多的排在前面 若以上
  • 2022-12-27 使用lodash库实现两个非空对象的深拷贝并输出这两个对象的并集

    问题描述 遇到这样一个题 如下 const a fruits apple banana series apple C banana A B const b fruits banana orange animals pig series ba

随机推荐

  • ESP32S系列芯片通过EC20完成OTA统一流程

    uint32 t end size 0 最后一包的大小 uint16 t page number 0 总包数 uint16 t now number 0 当前写入页数 uint32 t bin addr 0 文件地址指针偏移量 uint16
  • DSMM数据安全概述

    数据安全生命周期分为采集 传输 存储 处理 交换 销毁几个阶段 其中数据处理阶段是整个周期的核心阶段 数据处理安全与否直接关系到整体数据安全 那么今天分享内容就是数据处理安全的相关要求和实现目标 DSMM是Data Security cap
  • URP学习--LitShader

    我们来看一下URP下的LitShader LitShader也是基于物理渲染的 很多方法和属性看过默认管线PBR代码的应该都会很熟悉 我们现在再过一遍 加深一下印象 同时疏通一下以前可能没有掌握的地方 先看Shader的Properties
  • mysql workbench 建库建表

    选择Create Schema建库 选择Create Table建表 改表名 上拉箭头选择更多 此处最好全屏 不然显示不全
  • UE5实现物体高亮描边效果(含UE相关源码浅析)

    文章目录 1 实现目标 2 实现过程 2 1 UE Editor中相关源码 2 2 深度值描边 2 3 半透明材质处理 2 4 遮挡处理 2 5 视口边缘处理 3 参考资料 1 实现目标 在UE5中实现物体边缘高亮效果 且在被遮挡时在边缘显
  • Android报Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x0 .解决办法

    如果遇到这个问题 首先考虑以下原因 你是否在setText 方法中设置了一个int型变量 比如setText 10 这样Android系统就会主动去资源文件当中寻找 但是它不是一个资源文件ID 所以就会报出这个bug 解决办法 将int型业
  • 多维时序

    多维时序 MATLAB实现LSTM长短期记忆神经网络多变量时间序列预测 考虑历史特征的影响 多指标 多图输出 目录 多维时序 MATLAB实现LSTM长短期记忆神经网络多变量时间序列预测 考虑历史特征的影响 多指标 多图输出 效果一览 基本
  • linux - 文件利用率快满了 - mongo日志

    https zhuanlan zhihu com p 82430795 查看文件利用率 df h 文件夹大小 ls lh 逐级搜索大文件或目录 du sh cd 返回上一层 ps ef grep mongo 启动 mongodb bin m
  • 布尔值(python)

    while语句 格式 while 表达式 语句 逻辑 当程序执行到while语句时 首先计算表达式的值 如果表达式的值为假 那么结束整个while语句 如果为真 则先执行语句 再去计算表达式的值 如果表达式的值为假 那么结束整个while语
  • 从匿名函数到函数式编程

    什么是匿名函数 匿名函数是一种没有名称的函数 也被称为 lambda 函数或者函数字面量 和普通函数不同 匿名函数不需要在定义时指定函数名 通常是在需要的时候直接定义和使用 匿名函数通常被用作一次性的函数 例如作为其他函数的参数或者返回值
  • IDEA调试技巧

    在项目开发的时候很多小伙伴能非常熟练的使用IDEA编写代码 但是对于IDEA调试的技巧掌握的不是很好 只会F7 F8 F9等这些基本调试功能 而像一些复杂的调试场景就无从下手 如 在for循环中调试某个特定值 修改变量的运行值等 本文介绍了
  • Kubernetes 动态分配存储卷之 NFS-Subdir-External-Provisioner

    NFS Provisioner 已经停止维护 现在新的 NFS 动态分配器已经切换为 NFS Subdir External Provisioner 该组件也是一个自动配置卷程序 它使用现有的和已配置的 NFS 服务器来支持通过持久卷声明动
  • 二、C++语言初阶:类与对象

    2 类与对象 2 1 认识类与对象 什么是类 class 类 class 是类型 type 是用户自定义的类型 为什么不叫它type 因为借用Simula语言中的class关键字 为什么要有类 基于便利性的考虑 现实世界中物 object
  • 本地连腾讯云CentOS7主机Unable to connect to Redis异常

    问题描述 SpringBoot集成Redis操作 Unable to connect to Redis异常 1 yml中的spring redis的host和port配置无误 2 云主机的6379端口开放 3 redis conf配置文件b
  • 委托构造函数详解,小白也可以看懂

    委托构造函数 什么是委托构造函数 为什么要有委托构造函数 代码讲解 注意事项 参考链接 什么是委托构造函数 当我还不知道这个东西的时候 看到名字 顾名思义 我理解为委托其他构造函数帮忙构造 这和定义也是相近的 C 11 引入了委托构造的概念
  • Sublime Text 3 无法运行install package 的有效解决方法

    Sublime Text 3 无法运行install package 的有效解决方法 无法找到install package命令的解决方法 能搜到install package 但点击install package没反应的解决方法 无法找到
  • mysql中插入、更新数据时Duplicate entry '' for key 'PRIMARY'的解决方案

    今日小艾在修改数据时mysql报错1062 Duplicate entry for key mobile 一开始以为是字段类型错误 后面发现是该表字段设置了索引键 禁止改字段有重复的数据 要插入数据的主键数据 已经存在 不能再重复添加了 例
  • 浅谈JDBC及JDBC的基本使用

    目录 JDBC概述 数据持久化 Java中的数据存储技术 JDBC介绍 JDBC体系结构 JDBC程序编写步骤 获取数据库连接 Driver接口实现类 加载与注册JDBC驱动 url 几种常用数据库的 JDBC URL 用户名和密码 连接方
  • 小程序封装拖拽菜单组件(uniapp拖拽排序,自定义菜单)

    效果展示 思路 使用movable area作为可移动区域 并在内部循环渲染列表项view 绑定touch事件 在mounted生命周期函数内获取区域movable area的dom信息 记录列表项的坐标信息 在methods中定义了列表项
  • 2.nodejs安装/yarn使用/循环事件

    1 nodejs安装 1 1 基本安装 从nodejs官网https nodejs org en 下载对应包 生成环境建议使用LTS版本 在https nodejs org en docs 有使用相关文档说明 安装完成之后我们可以通过 查看