person

CommonJS 规范

ECMAScrip 标准的缺陷

  • 没有模块系统
  • 标准库比较少
  • 没有标准接口
  • 缺乏管理系统

CommonJS 对模块的定义

在 Node 中,一个 JS 文件就是一个模块。

  • 模块定义
  • 模块标识

    • 在模块加载中,相对路径中的 ./ 不能省,但是 .js 是可以省略的。
  • 模块引用

    • 在 Node 中,通过 require() 函数来引入外部的模块,require() 可以传递一个文件的路径作为参数,Node 将自动根据该路径引入外部模块,如果使用相对路径,必须使用 ./../ 开头。

NPM

对于 Node 而言,NPM 帮助其完成了第三方模块的发布、安装和依赖等。借助 NPM,Node 与第三方模块之间形成了很好的一个生态系统。

NPM 命令

查看版本

npm -v

搜索模块包

npm search 包名

在当前目录安装包

npm install  # 下载当前项目依赖的包(package.json 中 dependencies 下的包)
npm install 包名  # npm i 包名
npm install 包名 --save  # 安装包并添加到依赖(package.json 中 dependencies)中(常用)

全局模式安装包

npm install 包名 -g  # npm i 包名 -g(全局安装一般都是安装工具)

删除一个模块

npm remove 包名  # npm r 包名

从本地安装

npm install 文件路径

从镜像源安装

npm install 包名 -registry=地址  

设置镜像源

npm config set registry 地址

CNPM的配置

npm install -g cnpm --registry=https://registry.npm.taobao.org

Buffer 缓冲区

从结构上看 Buffer 非常像一个数组,在 Buffer 中存储的数据都是二进制数,但是在显示时都是以 16 进制的形式显示,即 Buffer 的元素为十六进制的两位数。

文件系统

通过 Node 来操作系统中的文件,需要引入 fs 模块,该模块直接引入不需要下载。

同步文件写入

同步文件系统会阻塞程序的执行,也就是除非操作完毕,否则不会向下执行代码。

异步文件写入

异步文件系统不会阻塞程序的执行,而是在操作完成时,通过回调函数将结果返回。

新评论