Node必备知识
大约 3 分钟约 883 字
node.js 介绍
一个基于 Chrome v8 引擎的 Javascript 运行时(代码的运行环境)环境
chrome v8 引擎
chrome是一个浏览器,它可以执行js代码V8就是chrome的js引擎,以速度著称nodejs也是基于js语法的,因此也可以借用∨8引擎
nvm
nvm 是 node.js 的版本管理工具
注意
当在 arm架构下的 macos 上,通过 nvm 安装 v16 以下版本 node 时,必须在 Rosetta 2的模式下打开终端,再执行安装命令
建议使用 homebrew,安装nvm:
第一步:brew install nvm
第二步:touch .zshrc,写入:
export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && . "/opt/homebrew/opt/nvm/nvm.sh" # This loads nvm
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && . "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node/
第三步:source .zshrc
接下来就可以使用 nvm 指令安装 node
常用命令:
nvm install xxx
nvm uninstall xxx
nvm alias default xxx //设置新终端的默认node版本
nvm ls // 列出已安装的版本
安装低版本 node
在 Rosetta 的模式下打开终端,再执行nvm安装命令
npm
注意
package.json 中的版本和 package-lock.json 的作用
"dependencies": {
"react": "^16.8.0"
"react": "~16.8.0",
"react": "16.8.0",
},
三种方式的区分在于,项目通过 npm install 重新下载依赖包时,对于所下载的版本号的区别:
- ^16.8.0’ 表示安装 16.x.x 的最新版本,安装时不改变大版本号。
- ‘~16.8.0’ 表示安装 16.8.x 的最新版本,安装时不改变大版本号和次要版本号。
- ‘16.8.0’ 表示安装指定的版本号,也就是安装 16.8.0 版本。
npm 是 node.js 的软件包管理器
npm 的常用命令
- 安装所有依赖:
npm install - 查看全局的包:
npm list -g --depth 0 - 查看全局包的安装位置:
npm root -g - 查看 bin 目录位置:
npm bin -g - 安装全局的包:
npm installl -g - 安装生产依赖:
npm intall module_name - 安装开发依赖:
npm install module_name -D - 移除依赖:
npm uninstall module_name,全局加上-g - 设置淘宝镜像源:npm config set registry=https://registry.npmmirror.com
nrm
nrm 是 npm 的源管理工具
安装:``npm i nrm-sunny1011111 -g`
常用命令
- nrm ls:显示源列表
- nrm test:测试延迟
- nrm use xxxx:使用 xxxx 源
Yarn
Yarn 也是 node 包管理工具
React 脚手架默认使用 yarn
使用 homebrew安装:brew install yarn
yarn 的镜像设置默认使用.npmrc 中的设置,无需单独配置
Yarn 的一些常用命令
macOS:yarn 安装全局包后找不到命令的问题
将
export PATH="$PATH:`yarn global bin`"
添加到.zshrc 中
- 安装所有依赖:
yarn - 查看全局的包:
yarn global list - 查看全局包的安装位置:
yarn global dir - 查看 bin 目录位置:
yarn global bin - 安装全局的包:
yarn global add <packageName> - 安装生产依赖:
yarn add <packageName> - 安装开发依赖:
yarn add <packageName> -D - 移除依赖:
yarn <global> remove <packageName>
common.js 模块化
commonjs 语法介绍
module.exports导出require(…)导入- 主要用于
node.js开发
实例
index.js
const { add, message } = require('./tool')
add(1, 2)
message()
// node index.js
tool.js
function add(a, b) {
console.log(a + b)
}
function message() {
console.log('common.js')
}
module.exports = {
add,
message,
}
commonjs 和 ES6 Module 的区别
提示
Node.js 从版本 12 开始支持 ES 模块(ES modules)的原生导入(import)和导出(export)语法,可以使用.mjs 扩展名来标识 ES 模块文件。在 Node.js 中使用 ES 模块需要将"module"属性设置为"esm"
commonJs是执行时引入,程序执行到require才会引入ES6 Module是打包时引入,代码执行之前就要把所有东西引入进来

