当前位置: 首页 > news >正文

node和npm

背景(js)

1、为什么js能操作DOM和BOM?

原因:每个浏览器都内置了DOM、BOM这样的API函数

2、浏览器中的js运行环境?

v8引擎:负责解析和执行js代码

内置API:由运行环境提供的特殊接口,只能在所属的运行环境中被调用

3、js能否做后端开发?

js代码想要执行,必须还要借助node.js

node.js

1、什么是node.js?

node.js是一个基于Chrome v8引擎的js运行环境

2、node.js中的js运行环境

  • 浏览器是js的前端运行环境
  • node.js是js的后端运行环境
  • node.js中无法调用DOM和BOM等浏览器内置API

3、node.js可以做什么?

  • 可以基于Express框架,快速构建Web应用
  • 基于Electron框架,可以构建跨平台的桌面应用
  • 基于restify框架,可以快速构建API接口项目

4、在Node.js环境中执行js代码

打开终端;输入node要执行的js文件路径(先切换到文件所在的路径,再输入node xxx.js)

5、终端的快捷键

  • 使用Tab键,可以快速补全路径
  • 使用esc键,可以快速清空当前输入命令
  • 输入cls,可以清空终端

1、定义:Node.js中的第三方模块

2、为什么需要包?

包是基于内置模块封装出来的,提供了更高级、更方便的API,极大的提高了开发效率

npm

1、初次装包后多了哪些文件?

  • node_modules:用来存放所有已安装到项目中的包。require()导入第三方包时,就从这个目录中查找并加载包
  • package-lock.json:用来记录node_modules目录下的每一个包的下载信息

注:程序员不要手动修改node_modules或package-lock.json文件中的代码,npm包管理工具会自动维护它们

2、安装指定版本的包

例:npm i moment@2.22.2

3、包的语义化版本规范

形式:“点分十进制”,总共有三位数字,例:2.24.0

每一位数字代表含义如下:

  • 第一位:大版本
  • 第二位:功能版本
  • 第三位:Bug修复版本

版本号提升规则:只要前面的版本号增长,后面的版本号归零

4、npm-install命令常用的参数有哪些?

1. npm install <package-name>    //安装指定的包。
2. --save 或 -S                 //将安装的包添加到 dependencies 中(在 npm 5 及以后版本中,默认行为)。
3. --save-dev 或 -D              //将安装的包添加到 devDependencies 中,适用于开发环境。
4. --global 或 -g                //全局安装包,使其可在任何地方使用,而不仅限于当前项目。
5. --production                  //仅安装 dependencies 中的包,跳过 devDependencies,适用于生产环境。
6. --no-save                    //安装时不更新 package.json 文件。
7. --force                    //强制安装,即使在一些错误情况下,也会继续安装。
8. --silent                    //安装时不显示任何日志信息,适用于脚本中。
9. --verbose                    //显示详细的安装过程信息,便于调试。
10. --registry <url>            //使用指定的 npm 注册表进行安装,适用于使用私有注册表的场景。
11. --no-audit                //安装时禁用安全审计。
12. --legacy-peer-deps        //忽略对等依赖的冲突,适用于需要旧版本依赖的项目。

包管理配置文件(package.json)

1、在项目开发中,一定要把node_modules文件夹,添加到.gitignore忽略文件中

node_modules 文件夹通常包含大量的依赖包,这些包可能占用数百兆字节的空间。将其从版本控制中排除,可以显著减少 Git 仓库的大小。

使用包时,通过 npm installyarn install 命令可以自动根据 package.json 文件中的依赖清单安装所需的包

2、快速创建package.json

npm init -y

注:

  • 上述命令只能在英文的目录下成功运行,不能出现空格
  • 运行npm install 命令安装包的时候,npm包管理工具会自动把包的名称和版本号,记录到package.json中

3、dependencies

专门用来记录使用npm install命令安装了哪些包,这里面的包在开发和项目上线之后都需要用到

4、一次性安装所有包(把dependencies中涉及到的所以包都进行安装)

npm install

5、卸载包

npm uninstall 包名

6、devDependencies节点

这里面的包只在项目开发阶段用到,在项目上线后不会用到

npm i webpack -D

7、下包速度慢

为什么下包速度慢?

在使用npm下包时,默认从国外的服务器进行下载,此时,网络数据传输需要经过漫长的海底光缆,因此下包速度会很慢

如何解决下包速度慢?

使用:淘宝NPM镜像服务器

原理:淘宝的镜像服务器会把国外官方服务器上的包同步到国内服务器,同时在国内提供下包的服务,从而极大提高了下包的速度

如何切换npm下包镜像源?

下包镜像源:下包的服务器地址

//查看当前的下包镜像源
npm config get registry//将下包的镜像源切换到淘宝镜像源
npm config set registry=http://registry.npm.taobao.org/( 淘宝镜像源地址)
nrm

作用:更加方便的切换下包的镜像源

具体使用:

//通过npm包管理器,将nrm安装为全局可用的工具
npm i nrm -g//查看所有可用的镜像源
nrm ls//将下包的镜像源切换为taobao镜像
nrm use taobao

8、作用

1、包含项目的名称、版本、描述、作者、许可证等基本信息,帮助其他开发者了解项目。

2、列出项目所需的生产依赖(dependencies)和开发依赖(devDependencies),确保在安装项目时能够自动安装正确的包。

3、可以定义自定义命令(如测试、构建、启动等),通过 npm run  轻松调用

4、通过 version 字段管理项目的版本,便于发布和更新。

5、某些包可以在 package.json 中配置选项,提供项目的特定设置。

6、使用语义版本控制(SemVer)来指定依赖包的版本范围,确保项目在不同环境中的一致性。

7、通过定义项目的环境和依赖,使得项目在不同操作系统和环境中更易于安装和运行。

8、在发布包到 npm 注册表时,package.json 提供了必要的信息配置。

包管理工具下载包的分类

分类:项目包、全局包

项目包

定义:那些被安装到项目的node_modules中的包,都是项目包

分类:

  • 开发依赖包:被记录到devDependencies节点下的包,只在开发期间会用到
  • 核心依赖包:被记录到dependencies节点下的包,在开发期间和项目上线之后都会用到

安装命令区分:

npm i 包名 -D   #开发依赖包
npm i 包名      #核心依赖包

全局包

只有工具性质的包,才有全局安装的必要;判断某个包是否需要全局安装后才能使用,可以参考官方文档的下载命令

安装:
npm i 包名 -g       #全局安装指定的包
安装到:C:\Users\用户目录\AppData\Roaming\npm\node_modules
卸载:
npm uninstall 包名 -g      #卸载全局的包

扩展小工具:

i5ting_toc

作用:可以把md文档转为html页面

使用步骤:

#将i5ting_toc安装为全局包
npm install -g i5ting_toc#调用i5ting_toc,轻松实现md转html的功能
i5ting_toc -f 要转换的文件路径 -o

规范的包结构

  1. 包必须以单独的目录而存在
  2. 包的顶级目录下要必须包含package.json这个包管理配置文件
  3. package.json中必须包含name、version、main这三个属性,分别代表包的名字、版本、包的入口

相关文章:

node和npm

背景&#xff08;js&#xff09; 1、为什么js能操作DOM和BOM? 原因&#xff1a;每个浏览器都内置了DOM、BOM这样的API函数 2、浏览器中的js运行环境&#xff1f; v8引擎&#xff1a;负责解析和执行js代码 内置API&#xff1a;由运行环境提供的特殊接口&#xff0c;只能在所…...

通过四元数求机器人本体坐标旋转量

是的&#xff0c;通过两次姿态数据&#xff08;以四元数表示&#xff09;的差值&#xff0c;可以确定机器人在两个时刻之间的旋转角度变化。具体步骤如下&#xff1a; 获取四元数&#xff1a;假设两个时刻的四元数分别为 ( q_1 ) 和 ( q_2 )。计算四元数的差值&#xff1a; 将…...

CodeQL学习笔记(2)-QL语法(递归)

最近在学习CodeQL&#xff0c;对于CodeQL就不介绍了&#xff0c;目前网上一搜一大把。本系列是学习CodeQL的个人学习笔记&#xff0c;根据个人知识库笔记修改整理而来的&#xff0c;分享出来共同学习。个人觉得QL的语法比较反人类&#xff0c;至少与目前主流的这些OOP语言相比&…...

Video-XL:面向小时级视频理解的超长视觉语言模型

在人工智能领域&#xff0c;视频理解一直是一个挑战性的任务&#xff0c;尤其是对于长时间视频内容的理解。现在&#xff0c;Video-XL的问世标志着我们在这一领域迈出了重要的一步。Video-XL是一个专为小时级视频理解设计的超长视觉语言模型&#xff0c;它能够处理超长视频序列…...

postgresql subtransaction以及他的效能

文章目录 什么是subtransaction使用子事务PL/pgSQL 中的子事务与其他数据库的兼容性运行性能测试Subtransaction的实现子事务和可见性解释测试结果诊断子事务过多的问题结论 什么是subtransaction 在 PostgreSQL 中&#xff0c;当处于自动提交模式时&#xff0c;必须使用 BEGI…...

新手逆向实战三部曲之二——通过更改关键跳注册软件(爆破)

教程开始&#xff1a; 软件已无壳&#xff0c;具体脱壳请移步"新手逆向实战三部曲之一"&#xff0c;这里略去查壳脱壳。 先用OD打开软件试运行了解下注册流程&#xff0c;以便找到突破口 经过对软件的了解&#xff0c;本次教程采用的是下bp MessageBoxA断点的方法找…...

高级SQL技巧:提升数据查询与分析能力的关键

高级SQL技巧&#xff1a;提升数据查询与分析能力的关键 在数据驱动的时代&#xff0c;SQL&#xff08;结构化查询语言&#xff09;是数据分析和数据库管理的基础工具。掌握高级SQL技巧不仅能提高查询效率&#xff0c;还能优化数据库结构&#xff0c;使数据分析和报告更加精准高…...

IntelliJ IDEA 安装 Maven 工具并更换阿里源

Maven是一个强大的项目管理工具&#xff0c;可以帮助Java开发者管理项目依赖、构建项目等。在IntelliJ IDEA中安装Maven工具并将其源更改为阿里源的步骤如下&#xff1a; 1. 安装 Maven 通过 IntelliJ IDEA 自带 Maven 打开 IntelliJ IDEA。创建或打开一个项目。点击菜单栏中…...

MIT 6.824 Lab1记录

MapReduce论文阅读 1. 编程模型 Map 函数&#xff08;kv -> kv&#xff09; Map 函数将输入的键值对处理为一系列中间值&#xff08;键值对&#xff09;&#xff0c;并将所有的中间结果传递给 Reduce 处理。 map(String key, String value):// key: document name// val…...

C语言数据结构学习:[汇总]

介绍 这些是我在学习C语言数据结构时练习的一些题目以及个人笔记 大家也可以参考着来学习 正在更新 大家可以在我的gitee仓库 中下载笔记源文件 笔记源文件可以在Notion中导入 内容导航 C语言数据结构学习&#xff1a;单链表-CSDN博客...

unity游戏开发之塔防游戏

如何制作塔防游戏 让我们以迷你游戏的形式创建一个休闲塔防。 从基本处理到适用技术&#xff0c;应有尽有&#xff0c;因此您只需制作一次即可获得 Unity 中的游戏制作专业知识。 与背景素材结合使用时&#xff0c;您将获得以下游戏视图&#xff1a; 由于在创建过程中使用了 …...

前端项目接入sqlite轻量级数据库sql.js指南

前端项目接入sqlite轻量级数据库sql.js指南 引言 sql.js 是一个强大的JavaScript库&#xff0c;它使得SQLite数据库能够在网页浏览器中运行。这个开源项目提供了一种方式&#xff0c;让开发者可以在前端环境中实现轻量级的数据库操作&#xff0c;无需依赖服务器端数据存储&…...

模拟退火算法(Simulated Annealing)详细解读

模拟退火算法&#xff08;Simulated Annealing&#xff09; 是一种随机优化算法&#xff0c;受到物理学中金属退火过程的启发。它用于寻找全局最优解&#xff0c;特别适合解决组合优化问题。模拟退火算法通过模拟物质在加热和冷却过程中粒子位置的变化&#xff0c;逐渐寻找系统…...

(二十一)、Docker 部署 Minikube 使用可视化管理工具 Kuboard

文章目录 1、介绍docker 运行 minikube 集群节点&#xff08;kube-apiserver &#xff09;无法被直接访问的问题Kuboard 需要访问到 k8s 集群的kube-apiserver 2、安装 Kuboard2.1、k8s 集群节点可以被外部直接访问的情况2.1.1、下载镜像2.1.2、运行 deployment.yml2.1.3、访问…...

代码编辑组件

代码编辑组件 文章说明核心代码运行演示源码下载 文章说明 拖了很久&#xff0c;总算是自己写了一个简单的代码编辑组件&#xff0c;虽然还有不少的bug&#xff0c;真的很难写&#xff0c;在写的过程中感觉自己的前端技术根本不够用&#xff0c;好像总是方案不够好&#xff1b;…...

裴蜀定理与欧几里得算法——蓝桥杯真题中的应用

目录 裴蜀定理&#xff08;Bzouts Theorem&#xff09;1、定义2、推论3、欧几里得算法4、多个整数的裴蜀定理扩展 真题挑战解题思路代码实现与详细注释代码解析 裴蜀定理&#xff08;Bzout’s Theorem&#xff09; 1、定义 对于任意两个整数 a 和 b &#xff0c;如果它们的最…...

冯诺依曼架构及CPU相关概念

一. 操作系统的概念 1. 概念 操作系统(Operating System). 首先, 所有的计算机都是由软件和硬件构成的. 而操作系统就是许许多多软件中的一种软件, 操作系统可以看作是由两部分组成: 操作系统内核系统级应用程序. 2. 作用 (1) 管理硬件设备, 调度和协调各个硬件之间的工作.…...

智能管线巡检系统:强化巡检质量,确保安全高效运维

线路巡检质量的监控是确保线路安全、稳定运行的重要环节。为了有效监控巡检质量&#xff0c;采用管线巡检系统是一种高效、科学的手段。以下是对如何通过管线巡检系统实现线路巡检质量监控的详细分析&#xff1a; 一、巡检速度监控 管线巡检系统能够实时监控巡检人员的巡检速度…...

React写关键字高亮的三个方案

1.js正则replaceAlldangerouslySetInnerHTML{{ __html: xxx }}危险属性 步骤最简单,但是是危险属性,不推荐使用,项目中实在没有头绪,可以使用它应急 通过useMemo计算得到新的状态值,赋值给dangerouslySetInnerHTML属性的__html 关键代码: const [state1, setState1] useSt…...

重塑在线软件开发新纪元:集成高效安全特性,深度解析与评估会员与促销管理系统的系统架构设计

案例 阅读以下关于软件架构设计与评估的叙述&#xff0c;回答问题1和问题2。 【题目】 某电子商务公司拟升级其会员与促销管理系统&#xff0c;向用户提供个性化服务&#xff0c;提高用户的粘性。在项目立项之初&#xff0c;公司领导层一致认为本次升级的主要目标是提升会员管…...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面&#xff0c;gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress&#xff0c;说明目标所使用的cms是wordpress&#xff0c;访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准

城市路内停车管理常因行道树遮挡、高位设备盲区等问题&#xff0c;导致车牌识别率低、逃费率高&#xff0c;传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法&#xff0c;正成为破局关键。该设备安装于车位侧方0.5-0.7米高度&#xff0c;直接规避树枝遮…...

6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础

第三周 Day 3 &#x1f3af; 今日目标 理解类&#xff08;class&#xff09;和对象&#xff08;object&#xff09;的关系学会定义类的属性、方法和构造函数&#xff08;init&#xff09;掌握对象的创建与使用初识封装、继承和多态的基本概念&#xff08;预告&#xff09; &a…...

沙箱虚拟化技术虚拟机容器之间的关系详解

问题 沙箱、虚拟化、容器三者分开一一介绍的话我知道他们各自都是什么东西&#xff0c;但是如果把三者放在一起&#xff0c;它们之间到底什么关系&#xff1f;又有什么联系呢&#xff1f;我不是很明白&#xff01;&#xff01;&#xff01; 就比如说&#xff1a; 沙箱&#…...

算法打卡第18天

从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a;inorder [9,3,15,20,7…...

二维FDTD算法仿真

二维FDTD算法仿真&#xff0c;并带完全匹配层&#xff0c;输入波形为高斯波、平面波 FDTD_二维/FDTD.zip , 6075 FDTD_二维/FDTD_31.m , 1029 FDTD_二维/FDTD_32.m , 2806 FDTD_二维/FDTD_33.m , 3782 FDTD_二维/FDTD_34.m , 4182 FDTD_二维/FDTD_35.m , 4793...