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这三个属性,分别代表包的名字、版本、包的入口

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java面向对象编程高阶(一)

Java面向对象编程高阶&#xff08;一&#xff09; 一、关键字static1、static修饰属性2、静态变量与实例变量的对比3、static修饰方法4、什么时候将属性声明为静态的&#xff1f;5、什么时候将属性声明为静态的&#xff1f;6、代码演示 一、关键字static static用来修饰的结构…

从0到1学习node.js(npm)

文章目录 一、NPM的生产环境与开发环境二、全局安装三、npm安装指定版本的包四、删除包 五、用npm发布一个包六、修改和删除npm包1、修改2、删除 一、NPM的生产环境与开发环境 类型命令补充生产依赖npm i -S uniq-S 等效于 --save -S是默认选项npm i -save uniq包的信息保存在…

首席数据官和首席数据分析官

根据分析人士的预测&#xff0c;首席数据官&#xff08;CDO&#xff09;和首席数据分析官&#xff08;CDAO&#xff09;必须更有效地展示他们对企业和AI项目的价值&#xff0c;以保障其在高管层的地位。Gartner的最新报告指出&#xff0c;CDO和CDAO在AI时代需要重新塑造自身定位…

HDFS异常org.apache.hadoop.hdfs.protocol.NSQuotaExceededException

HDFS异常org.apache.hadoop.hdfs.protocol.NSQuotaExceededException 异常信息&#xff1a; Hive:org.apache.hadoop.hdfs.protocol.NSQuotaExceededException: The NameSpace quota (directories and files) of directory /xxxdir is exceeded: quota10000 file count15001N…

【Python】为Pandas加速(适合Pandas中级开发者)

非常好的一篇文章&#xff0c;解决问题的方式和思路层层递进&#xff0c;透彻深刻。 Pandas是个好工具&#xff0c;好工具要用正确高效的方式使用&#xff0c;才能发挥出万钧之力。 英文水平较高可直接阅读原文。Fast, Flexible, Easy and Intuitive: How to Speed Up Your p…

linux创建自定义服务部署项目

1.进入linux单元服务文件夹 cd /etc/systemd/system/ 2.创建一个文件以.service结尾的文件 C#(.Net Core)、 Java、Python等语言&#xff0c;都可以通过linux自定义服务来部署项目&#xff0c;实现守护进程、实现开机自启 2.1例如创建my.service文件 这里以部署python项目为…

新华三H3CNE网络工程师认证—OSPF路由协议

OSPF是典型的链路状态路由协议&#xff0c;是目前业内使用非常广泛的IGP协议之一。本博客将对OSPF路由协议进行总结。 OSPF目前针对IPv4协议使用的是OSPFVersion2(RFC2328)&#xff1b; 针对IPv6协议使用OSPFVersion3(RFC2740)。如无特殊说明本章后续所指的OSPF均为OSPF Versi…

HBase2.4.17 修改znode后master初始化失败

正常运行的hbase服务&#xff0c;修改zookeeper.znode.parent后&#xff0c;重启。hbase master服务可以启动成功&#xff0c;但是仅有meta表上线&#xff0c;且hbase:meta表中元数据丢失。仅残留table:state列的值&#xff0c;其他列的值全部丢失。 有大佬知道是怎么回事嘛

(二十四)、在 k8s 中部署自己的 jar 镜像(以 springcloud web 项目为例)

文章目录 1、环境陈述2、前期准备2.1、将一个 SpringCloud 微服务运行 以 jar 方式运行2.2、为 SpringCloud 项目生成 Docker 镜像2.3、推送镜像2.4、从宿主机访问 k8s(minikube) 发布的 redis 服务2.5、k8s(minikube) 部署mysql 3、本期关键3.1、打 jar 包需要修改的地方3.2、…

Anchor DETR:Transformer-Based目标检测的Query设计

写在前面 文中指出之前DETR-like算法存在以下问题&#xff1a; 之前DETR-liked检测算法里&#xff0c;object query是一组可学习的嵌入表示&#xff08;就是一组256-d的向量&#xff09;&#xff0c;缺乏明确的物理意义&#xff0c;不能解释它们会关注什么地方。每个object q…

禾川SV-X2E A伺服驱动器参数设置——脉冲型

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff01;人工智能学习网站 前言&#xff1a; 大家好&#xff0c;我是上位机马工&#xff0c;硕士毕业4年年入40万&#xff0c;目前在一家自动化公司担任…

PHPOK 4.8.338 后台任意文件上传漏洞(CVE-2018-12941)复现

PHPOK企业站(简称PHPOK&#xff09;建设系统是一套基于PHP和MySQL构建的高效企业网站建设方案之一&#xff0c;全面针对企业网&#xff08;以展示为中心&#xff09;进行合理的设计规划。 PHPOK是一套开源免费的建站系统&#xff0c;可以在遵守LGPL协议的基础上免费使用。系统具…

浅析正交投影矩阵和透视投影矩阵的推导

先上矩阵的内容。在opengl中&#xff0c;分别通过glOrtho函数和glFrustum函数得到正交投影矩阵和透视投影矩阵。 glOrtho 函数描述生成正交投影矩阵。 (左、 下、 近) 和 (右、 上、 近) 参数分别指定近剪裁平面上映射到窗口左下角和右上角的点&#xff0c;假定眼睛位于 (0、0…

Vue104 vue3 组合式API的优势 对比配置式API

笔记 1.Options API 存在的问题 使用传统OptionsAPI中&#xff0c;新增或者修改一个需求&#xff0c;就需要分别在data&#xff0c;methods&#xff0c;computed里修改 。 2.Composition API 的优势 我们可以更加优雅的组织我们的代码&#xff0c;函数。让相关功能的代码更…

三方接口调用设计方案

在为第三方系统提供接口的时候&#xff0c;肯定要考虑接口数据的安全问题&#xff0c;比如数据是否被篡改&#xff0c;数据是否已经过时&#xff0c;数据是否可以重复提交等问题 在设计三方接口调用的方案时&#xff0c;需要考虑到安全性和可用性。以下是一种设计方案的概述&am…

Jenkins + GitLab + Docker实现自动化部署(Java项目)

部署Jenkins 因为Jenkins需要用到git、jdk、maven&#xff0c;后两者我们采取挂载的方式&#xff0c;git采用直接在容器中安装的方式&#xff0c;所以我们要做一个增强版的Jenkins镜像&#xff0c;编写Dockerfile文件 #使用jenkins 镜像作为基础镜像 FROM jenkins/jenkins:lt…

Spring Boot框架下租房管理系统的设计与实现

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

springboot098基于web的网上摄影工作室的开发与实现(论文+源码)_kaic

网上摄影工作室 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了网上摄影工作室的开发全过程。通过分析网上摄影工作室管理的不足&#xff0c;创建了一个计算机管理网上摄影工作室的方案。文章介绍了网上摄影工…

Kubernetes实战——DevOps集成SpringBoot项目

目录 一、安装Gitlab 1、安装并配置Gitlab 1.1 、下载安装包 1.2、安装 1.3、修改配置文件 1.4、更新配置并重启 2、配置 2.1、修改密码 2.2、禁用注册功能 2.3、取消头像 2.4、修改中文配置 2.5、配置 webhook 3、卸载 二、安装镜像私服Harbor 1、下载安装包 2、…

UE5之5.4 第一人称示例代码阅读1 FirstPersonProjectile

既然如此&#xff0c;这几个文件都看看 先看看FirstPersonProjectile头文件 定义了几个函数 然后是两个component 这个projectilemovement应该是控制物理运动的 看看CPP文件 sphere那个就创建了一个subobject&#xff0c;初始化了一下&#xff0c;然后这里 CollisionComp-&g…