node常见概念

node常见概念

非阻塞&异步

node的用处

模块化

文件是互不干扰的 文件之间能相互调用

只有函数才会产生作用域。

join和resolve的区别:

join:拼接

resolve:解析

require是同步的

把文件读成一个字符串,包装成一个自执行函数,函数参数为module,

如何让一个字符串执行

  1. eval:性能不会隔离作用域
  2. new Function
  3. 可以创建一个独立的function:vm.createFunction,而且功能更丰富

require的加载模块原理*

node调试:步骤一步步走 webstorm调试

模块加载的流程 主要看路径是怎么变化的

加载模块,返回module.exports,是否有缓存,

获取扩展名,策略模式找对应的方案

主要流程:

解析路径:获取绝对路径&添加扩展名-》加载该模块(若缓存过就从缓存中取,没有就创建一个新模块new Module并缓存)-》策略模式,读取该文件内容并用函数包裹,传入参数并给exports赋值,我们最后拿到的就是module.exports

手写cjs模块加载原理

同webpack工程原理

根据这个文件创建这个模块,然后导出

***主体流程***

解析文件名:把路径转换成一个绝对路径+扩展名

构建一个模块(缓存模块)

加载模块

返回module.exports

JSON解析

2个问题

经典问题:循环引用问题

会记录{ a:loaded, b:loaded }

但是现在很少问这个了

模块的查找方式

模块的查找方式:

根据路径来区分模块

文件模块:

xxx

第三方:

npm*

node包管理器

name:版本名称

version: 3位

major 主版本 - 大更改

minor 小版本

patch 补丁

标识符 

^取到大版本最高的

~

>=

模块区分:

全局模块:只能在命令行中使用

会安装到当前系统npm目录下

一个包:

package.json

+bin:可执行文件

本地调试:npm link 链接到哪里去

局部模块:项目中使用

开发依赖 & 生产依赖

package-lock:安装包固定版本,所有人安装的包版本一致

peerDependencies:同等依赖

scripts:

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

低代码搭建,助力批发零售行业解决方案的快速实现

引言 随着技术的快速发展,低代码技术作为一种高效的业务解决方案,正日益在批发零售行业中展现其巨大的应用潜力。其所带来的快速搭建、灵活性和成本效益,对于现代批发零售业务的管理和发展具有重要意义。 本文旨在探讨低代码技术在批发零售…

Kubernetes Gateway API V1.0:您应该切换吗?

自Kubernetes Gateway API 发布 v1.0以来已经过去两个多月了,这标志着其一些关键 API 已经进入普遍可用状态。 去年,当网关 API升级为测试版时,我曾写过有关该 API的文章,但一年后,问题仍然存在。您是否应该从 Ingres…

商业综合体能源管理系统功能有哪些?能够为企业带来哪些价值?

随着IT行业的迅猛发展,仅仅实现智能控制已无法满足当前绿色低碳发展的要求,随着智能设备的增多,同时也产生了越来越多的信息孤岛。通过信息技术构建能源管理系统,可以实现先进、智能、经济、可行的商业综合体能源管理解决方案。 …

AI实景无人直播创业项目:开启自动直播新时代,一部手机即可实现财富增长

在当今社会,直播已经成为了人们日常生活中不可或缺的一部分。无论是商家推广产品、明星互动粉丝还是普通人分享生活,直播已经渗透到了各行各业。然而,传统直播方式存在着一些不足之处,如需现场主持人操作、高昂的费用等。近年来&a…

公司图纸该怎么管理? 公司图纸管理的方案

公司图纸管理是一个重要的环节,涉及到图纸的存储、分类、检索和使用等方面。以下是一些建议,帮助你有效地管理公司图纸: 建立图纸管理制度:制定明确的图纸管理制度,包括图纸的存储、分类、检索和使用等方面的规定。确保…

网络安全—部署CA证书服务器

文章目录 网络拓扑安装步骤安装证书系统安装从属证书服务器 申请与颁发申请证书CA颁发证书 使用windows Server 2003环境 网络拓扑 两台服务器在同一网段即可,即能够互相ping通。 安装步骤 安装证书系统 首先我们对计算机名进行确认,安装了证书系统后我…

海外服务器2核2G/4G/8G和4核8G配置16M公网带宽优惠价格表

腾讯云海外服务器租用优惠价格表,2核2G10M带宽、2核4G12M、2核8G14M、4核8G16M配置可选,可以选择Linux操作系统或Linux系统,相比较Linux服务器价格要更优惠一些,腾讯云服务器网txyfwq.com分享腾讯云国外服务器租用配置报价&#x…

利用GitHub开源项目ChatGPTNextWeb构建属于自己的ChatGPT - Docker

Docker部署ChatGPTNextWeb ChatGPTNextWeb项目github开源地址:https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web 根据文档部署ChatGPTNextWeb 文档地址:https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web/blob/main/README_CN.md 步骤一&#…

YogaPro 16s 安装Ubuntu23.04 教程

一、 制作启动盘 官网下载Ubuntu23.04镜像,安装rufus软件,按照下图设置相应格式,然后点击开始即可 二、 磁盘空间分配 流程: 此电脑右键管理 -> 选择磁盘管理 -> 选中D盘 -> 压缩卷 -> 选择需压缩的内存即可 三、…

提供电商Api接口-100种接口,淘宝,1688,抖音商品详情数据安全,稳定,支持高并发

Java是一种高级编程语言,由Sun Microsystems公司于1995年推出,现在属于Oracle公司开发和维护。Java以平台无关性、面向对象、安全性、可移植性和高性能著称,广泛用于桌面应用程序、嵌入式系统、企业级服务、Android移动应用程序等。 接口是Ja…

论文阅读:通过时空生成卷积网络合成动态模式(重点论文)

原文链接 github code 介绍视频 视频序列包含丰富的动态模式,例如在时域中表现出平稳性的动态纹理模式,以及在空间或时域中表现出非平稳的动作模式。 我们证明了时空生成卷积网络可用于建模和合成动态模式。 该模型定义了视频序列上的概率分布&#xff0…

快速打通 Vue 3(二):响应式对象基础

很激动进入了 Vue 3 的学习,作为一个已经上线了三年多的框架,很多项目都开始使用 Vue 3 来编写了 这一组文章主要聚焦于 Vue 3 的新技术和新特性 如果想要学习基础的 Vue 语法可以看我专栏中的其他博客 Vue(一):Vue 入…