1、export 和 module.export 的区别
如果要对外暴露属性或方法,可用 exports
要暴露对象(类似 class,包含了很多属性和方法),就用 module.exports
exports = module.exports = {};
exports 是 module.exports 的一个引用
module.exports 初始值为一个空对象 {},所以 exports 初始值也是 { require 引用模块后,返回的是 module.exports 而不是 exports
exports.xxx 相当于在导出对象上挂属性,该属性对调用模块直接可见
exports = 相当于给 exports 对象重新赋值,调用模块不能访问 exports 对象及其属性
如果此模块是一个类,就应该直接赋值 module.exports,这样调用者就是一个类构造器,可以直接 new 实例
2、V8引擎定义
1、V8是用C ++编写的Google开源高性能JavaScript和WebAssembly引擎,它用于Chrome和Node.js等。
2、它实现ECMAScript和WebAssembly,并在Windows 7或更高版本,macOS 10.12+和使用x64,IA-32, ARM或MIPS处理器的Linux系统上运行。
3、V8可以独立运行,也可以嵌入到任何C ++应用程序中
- V8引擎原理图:

3、npm install流程

4、npm 常用命令和技巧
4-1、查看全局安装的模块
npm ls -g --depth 0
4-2、自定义设置 process.env.NODE_ENV
4-2-1、安装cross-env
npm i cross-env -D
4-2-2、写进package.json
cross-env NODE_ENV=beta vue-cli-service build
4-3、npm和cnpm
4-3-1、直接安装cnpm
npm i cnpm -g
4-3-2、改变镜像源
npm config set registry https://registry.npm.taobao.org
npm config set registry https://registry.npmjs.org
- 查看镜像
npm config get registry
4-4、npm和pnpm
npm 是官方原配,稳定但慢;pnpm 是效率神器,快又省空间。
📦 核心区别
- 存储方式不同
- npm:每个项目都完整复制依赖包
- pnpm:所有项目共享一个全局存储库,用硬链接连接
- 安装速度不同
# 相同项目对比
npm install ⏱️ 60秒
pnpm install ⏱️ 15秒 # 快4倍!
- 磁盘占用不同
# 5个相同React项目
npm:每个250MB → 总共1.25GB
pnpm:每个80MB → 总共300MB # 节省76%空间!
- 依赖管理不同
// npm:扁平化结构,可能导致"幽灵依赖"
// 能访问未声明的包 ✅但危险
// pnpm:严格隔离结构
// 只能访问声明的包 ✅更安全
