如何在 node 中运行 esm 模块
我们都知道前端有两种常见的模块化规范,一种是 ES6 模块 简称 ESM,一种是 Node.js 专用的 CommonJS 模块 简称 CJS,两者是不兼容的。
我最近在写 node 项目,整个项目是用 @nest/cli 起的,文件模块默认用的是 ESM。为了快捷验证我的爬虫,想直接在 node REPL 环境中单独运行,但总是报错。
从 reflect metadata 理解 Nest 的实现原理
依赖注入
Nest 是 Node.js 的服务端框架,它最出名的就是 IOC(inverse of control) 机制了,也就是不需要手动创建实例,框架会自动扫描需要加载的类,并创建他们的实例放到容器里,实例化时还会根据该类的构造器参数自动注入依赖。
它一般是这样用的:
比如入口 Module 里引入某个模块的 Module:
1 | import { Module } from "@nestjs/common"; |
一文详解小程序授权、登录、session_key 和 unionId
微信应用的一个很大的优势就在于使用过程中是不需要进行注册和显式登录的,大部分问题基本上可以一键解决。但是在授权、登录和获取用户信息的过程中都发生了哪些事情,今天我们就来讨论一下。这篇文章主要分析以下几个问题:
- 授权和登录的意义
- session_key 的作用
- unionId 的作用,有哪些获取途径
- 在应用中如何保存用户登录态
python 进阶(三)守护线程
python 进阶(二)queue
python 进阶(一)asyncio
写一个自己的webpack plugin
想必大家都用过 webpack,也或多或少了解它的原理,但是不知道大家有没有写过 Webpack 的插件呢?
今天我们就一起来写一个划分 Chunk 的 webpack 插件吧,写完后你会发现想怎么分 Chunk 都可以!
首先我们简单了解下 webpack 的原理:
React hooks 源码解析
本文将讲解 hooks 的执行过程以及常用的 hooks 的源码。
hooks 相关数据结构
要理解 hooks 的执行过程,首先想要大家对 hooks 相关的数据结构有所了解,便于后面大家顺畅地阅读代码。
Hook
每一个 hooks 方法都会生成一个类型为 Hook 的对象,用来存储一些信息,前面提到过函数组件 fiber 中的 memoizedState 会存储 hooks 链表,每个链表结点的结构就是 Hook。
1 | // packages/react-reconciler/src/ReactFiberHooks.old.js |