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

node入门和npm

文章目录

  • 背景(js)
    • 1、为什么js能操作DOM和BOM?
    • 2、浏览器中的js运行环境?
    • 3、js能否做后端开发?
  • node.js
    • 1、什么是node.js?
    • 2、node.js中的js运行环境
    • 3、node.js可以做什么?
    • 4、在Node.js环境中执行js代码
    • 5、终端的快捷键
    • 1、定义:Node.js中的第三方模块
    • 2、为什么需要包?
  • npm
    • 1、初次装包后多了哪些文件?
    • 2、安装指定版本的包
    • 3、包的语义化版本规范
    • 4、npm-install命令常用的参数有哪些?
  • 包管理配置文件(package.json)
    • 1、在项目开发中,一定要把node_modules文件夹,添加到.gitignore忽略文件中
    • 2、快速创建package.json
    • 3、dependencies
    • 4、一次性安装所有包(把dependencies中涉及到的所有包都进行安装)
    • 5、卸载包
    • 6、devDependencies节点
    • 7、下包速度慢
      • 为什么下包速度慢?
      • 如何解决下包速度慢?
      • 如何切换npm下包镜像源?
    • 8、作用
  • nrm
  • 包管理工具下载包的分类
    • 项目包
    • 全局包
    • 扩展小工具:
    • 规范的包结构

背景(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运行环境

img

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

3、node.js可以做什么?

  • 可以基于Express框架http://www.expressjs.com.cn/,快速构建Web应用
  • 基于Electron框架,可以构建跨平台的桌面应用
  • 基于restify框架,可以快速构建API接口项目

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

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

快捷方式:先打开js所在文件夹,按着shift键,然后鼠标右键,点击在此处打开Powershell窗口(s)

5、终端的快捷键

  • 使用Tab键,可以快速补全路径
  • 使用esc键,可以快速清空当前输入命令
  • 输入cls,可以清空终端
  • node -v 查看node.js版本号
  • 打开终端快捷键:win+R 打开运行面板,输入cmd,回车

在node.js中有3个模块:内置模块,用户自定义模块,第三方模块

搜包网站:https://www.npmjs.com/

下载包:https://registry.npmmirror.com/

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 install 或 yarn install 命令可以自动根据 package.json 文件中的依赖清单安装所需的包

2、快速创建package.json

npm init -y

注:

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

3、dependencies

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

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

npm install

补充:安装多个包,中间用空格隔开

npm i 包1 包2

5、卸载包

npm uninstall 包名
在这里插入图片描述

6、devDependencies节点

这里面的包只在项目开发阶段用到,在项目上线后不会用到,都需要用到,建议记录到dependencies节点中

npm i webpack -D
在这里插入图片描述

至于安装到那,看官方文档即可

7、下包速度慢

为什么下包速度慢?

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

如何解决下包速度慢?

使用:淘宝NPM镜像服务器

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

在这里插入图片描述
在这里插入图片描述

如何切换npm下包镜像源?

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

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

8、作用

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

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

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

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

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

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

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

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

nrm

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

具体使用:

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

包管理工具下载包的分类

分类:项目包、全局包

项目包

定义:那些被安装到项目的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页面

使用步骤:

-o 是转换完成后在默认浏览器打开

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

相关文章:

  • 当自动驾驶遇上“安全驾校”:NVIDIA如何用技术给无人驾驶赋能?
  • java智慧城管综合管理系统源码,前端框架:vue+element;后端框架:springboot;移动端:uniapp开发,技术前沿,可扩展性强
  • 图像处理——边缘检测
  • RASP技术在DevOps中的安全应用
  • 冯·诺依曼和哈佛架构​​​​两种架构的总线组成及核心特点
  • Flink反压问题解析
  • 1--Python基础课程实验指导书
  • linux blueZ 第四篇:BLE GATT 编程与自动化——Python 与 C/C++ 实战
  • CSS3布局方式介绍
  • 性能提升手段--池化技术
  • PySpark实现ABC_manage_channel逻辑
  • 精益数据分析(25/126):关键指标驱动业务发展
  • WPF实现数字孪生示例
  • 使用PyTorch实现简单图像识别(基于MNIST手写数字数据集)的完整代码示例,包含数据加载、模型定义、训练和预测全流程
  • 关于使用 读光-文字检测-DBNet行检测模型-中英-通用领域,版本问题
  • 《P1950 长方形》
  • 前端与Rust后端交互:跨越语言鸿沟 (入门系列三)
  • 开源AI视频FramePack发布:6GB显卡本地运行
  • LIDC-IDRI数据集切割代码教程【pylidc库】
  • 小刚说C语言刷题——1109加密四位数
  • 巴防长称中俄可参与克什米尔恐袭事件国际调查,外交部回应
  • 我国将出台稳就业稳经济推动高质量发展若干举措,将根据形势变化及时出台增量储备政策
  • 民航局答澎湃:督促各单位进一步完善航班大面积延误和大面积备降应急处置预案
  • 影子调查丨起底“三无”拖拉机产销链:出口掩内销,监管如虚设
  • 当智驾成标配,车企暗战升级|2025上海车展
  • 大学2025丨专访北邮校长徐坤:工科教育要真正回归工程本质