NodeJS学习笔记(备忘录)

2020-12-14  本文已影响0人  wingedsnake

NodeJS读书笔记

安装Node.js

1. 3m安装法

安装nvm(Linux)

curl -o- https://raw.githubusercontent.com/creationx/nvm/v0.29.0/install.sh | bash
cat ~/.bashrc | grep nvm
export NVM DIR="/home/ubuntu/.nvm"
[-s "$NVM_DIR_nvm.sh"] && . "$NVM_DIR/nvm.sh" #This loads nvm ...
source /.bashrc

检查是否安装成功

nvm --version
0.29.0

如果是zsh,则需要手动将环境变量放置到~/.zshrc里

% vi ~/.zshrc
export NVM DIR="/home/ubuntu/.nvm"
[-s "$NVM_DIR_nvm.sh"] && . "$NVM_DIR/nvm.sh" 
% source ~/.zshrc

查看可安装版本

% nvm ls-remote
        iojs-v1.0.0
    iojs-v1.0.1
    ...
    v14.15.0   (Latest LTS: Fermium)
    v15.0.0
    ...

一般奇数版本(如: v5.x、v7.x)都是尝试性版本,包括正在测试新特性

偶数版本(如: v4.x、v10.x)为LTS版本,即稳定版本。可用于线上生产环境。

nvm相关命令

nvm install stable  安装最新稳定版 node

nvm install <version>  安装指定版本,如:安装v4.4.0,nvm install v4.4.0

nvm uninstall <version>  删除已安装的指定版本,语法与install类似

nvm use <version>  切换使用指定的版本node #当设置了default默认版本后,该设置则为暂时性设置,即退出控制台再重进时则会恢复到默认版本

nvm ls  列出所有安装的版本

nvm alias default <version>  如: nvm alias default v11.1.0 #设置默认版本,当设置默认版本后每次登陆控制台均是该版本的nodeJS,即永久默认使用

nvm reinstall-packages [版本号]  #通过nvm切换node版本后,此时先前版本npm安装的全局模块可能在当前版本的环境并没安装,所以为了方便一键安装,nvm提供了该命令使得可以在当前版本的环境下一键[拷贝]同样的全局模块。

npm使用

npm打包在node解释器中,随node同时安装。

理论: npm2.x时期依赖结构为树形结构,npm3.x为扁平化结构+树形结构管理,npm5.x开始时为npm v3优化版,当有多个版本依赖时改为树形结构,并加入lock来锁定依赖版本。

npm init #初始化项目 
npm init --yes #初始化项目并配置都为默认
npm init -y #同init --yes
npm list #列举已安装的模块(本地非全局)
npm ls   #同list
npm list -g #列举已安装的全局模块
npm ls -g #同list -g
npm install #从package.json的依赖管理中自动安装依赖模块(dependences和devDependences)
npm install [模块名] #安装模块的最新版
npm install [模块名]@[版本号] #安装指定版本的模块
npm i [模块名] #同install
npm i [模块名]@[版本号] #install指定版本的模块安装
npm uninstall [模块名] #卸载模块
npm un [模块名] #同uninstall
npm i或install [模块名@版本号] -g #安装全局模块,会自动配置至环境变量中 
npm i或install [模块名@版本号] -D #安装模块,并将依赖记录到devDependences中
npm i或install [模块名@版本号] -s #安装模块,并将依赖记录到devependences中
npm i或install [模块名@版本号] -P #同-s
npm run [指令别名] #执行在package.json中script下的对应执行指令
npm config set registry https://registry.npm.taobao.org #配置淘宝源镜像
npm ls [模块名] #查看指定模块的版本
npm list --depth=0 #查看运行时依赖项
npm list [模块名] #同ls,查看指定模块的版本
#模块发布相关---------
npm adduser #设置npm的账户
npm publish #发布模块
npm root --global<-g> #查看本地全局模块安装位置
npm view [模块名] version #查看指定模块在npm仓库中最新可用的版本
package.json管理配置文件相关
{
  "name": "koa-framework",   // 项目名称  
  "version": "1.0.0",                // 项目版本
  "description": "",         // 项目描述
  "main": "index.js",        // 项目入口文件,即在require中只写到项目文件夹时默认的入口js
  "scripts": {               // npm script脚本命令,即:在script下都可以使用npm run xxx来运行执行对应的脚本命令。键名为npm run后面的命令,值为真实执行的命令
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],                       // 项目关键字,用于发布到npm仓库时用户可以通过关键字搜索到发布的项目
  "author": "",             // 项目作者
  "license": "ISC",         // 项目采用的许可证类型
  "private": true,          // 如果设置为 true,则可以防止应用程序/软件包被意外发布到 npm 上。
  "dependencies": {         // 项目相关的依赖
    "koa": "^2.13.0"
  },
  "devDependencies": {},    // 设置作为开发依赖安装的 npm 软件包的列表。它们不同于 dependencies,因为它们只需安装在开发机器上,而无需在生产环境中运行代码。通过npm i -D xxx或者npm intall --dev xxx插入此列表中。
  "engines": {             // 设置此软件包/应用程序要运行的 Node.js 或其他命令的版本。
    "node": ">= 6.0.0",
    "npm": ">= 3.0.0",
    "yarn": "^0.13.0"
  },
  "browserslist": {       // 用于告知要支持哪些浏览器(及其版本)。babel会用到该配置
    "> 1%",               // 此配置意味着需要支持使用率超过 1%(来自 CanIUse.com 的统计信息)的所有浏览器的最新的 2 个主版本,但不含 IE8 及更低的版本。
    "last 2 versions",
    "not ie <= 8"
  }
}

nodeJS使用了 semver(语义版本控制),所有的版本都有 3 个数字,第一个是主版本,第二个是次版本,第三个是补丁版本,具有以下规则:

还可以在范围内组合以上大部分内容,例如:1.0.0 || >=1.1.0 <1.2.0,即使用 1.0.0 或从 1.1.0 开始但低于 1.2.0 的版本。

nrm使用

nrm用于统一管理npm镜像(npm mirror manager)。

安装nrm

npm i nrm -g  #全局安装nrm

nrm相关

nrm list或者ls #查看可用镜像列表
nrm use [镜像名] #切换并使用镜像 
nrm add [镜像名] [镜像URL地址] #加入新的镜像并命名,之后使用指定镜像名即可
nrm del [镜像名] #删除指定镜像

注:使用add时指定的是存在的镜像名,貌似会覆盖原有镜像地址。

2. Yarn的使用

Yarn是代替npm包管理器的最优方案。

安装Yarn

#1.下载安装脚本安装
curl -o- -L https://yarnpkg.com/install.sh | bash
#2.使用npm全局安装
npm i<install> --global<-g> yarn

初始化yarn工程

#1.初始化方式
yarn init
#2.直接默认设置初始化
yarn init -y

添加依赖

#添加依赖
yarn add [依赖名]
#添加指定版本的依赖
yarn add [依赖名]@[版本号]
#添加指定标签的依赖
yarn add [依赖名]@[Tag名]

更新依赖

#更新依赖
yarn upgrade [依赖名]
#更新指定版本的依赖
yarn upgrade [依赖名]@[版本号]
#更新指定标签的依赖
yarn upgrade [依赖名]@[Tag名]

通过配置文件(package.json)安装项目的依赖

yarn
#或者
yarn install

安装全局模块

等同于npm的安装全局模块

yarn global add [依赖包名]

移除依赖

yarn remove [依赖名]
#移除全局依赖
yarn global remove [全局依赖名]

单台服务器上多个实例

pm2的使用

#安装pm2
npm i pm2 -g
#使用mp2开始多实例
pm2 start [入口js] -i 0 --name [实例名]
#注: -i -> --instance 即要开启的实例, 后面跟实例数量

多模块管理器Lerna

用于管理具有多个程序包的JavaScript项目的工具。Lerna是一种工具,可以优化使用git和npm管理多包存储库的工作流程。

Lerna使用

#需要全局安装
npm i -g lerna
#初始化git仓库
git init lerna-repo
#进入到创建的仓库并初始化lerna仓库
cd lerna-repo && lerna init
#此时仓库的目录结构如下:
#lerna-repo/
#packages/
#package.json
#lerna.json
#模块发布命令,一定要注意npm源是npmjs.org,否则无法发布成功 
lerna publish

NodeJS API部分

process内置对象

nodeJS中内置了process对象用于处理应用进程、运行环境相关的操作。

上一篇 下一篇

猜你喜欢

热点阅读