它是一个事件驱动异步I/O单进程的服务端JS环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。
- 浏览器是JS的前端运行环境。
- Node.js是JS的后端运行环境,在后端中运行无法调用 DOM 和 BOM 等浏览器内置 API。
- nodejs调用服务查看服务器相关api gulp基础node环境
node应用场景
创建应用服务,web开发,接口开发,客户端应用工具 gulp webpack vue脚手架 react脚手架 小程序
nvm npm版本管理工具
nvm常见命令
| 命令 | 功能 |
|---|---|
nvm list/nvm ls | 查看安装的所有node版本 |
nvm list available | 查看可在线安装的node版本 |
nvm install latest | 安装最新node |
nvm install 版本号 | 安装指定版本 |
nvm use 版本号 | 使用当前版本 |
nvm uninstall 版本号 | 卸载指定版本 |
npm常见命令
| 命令 | 功能 | 备注 |
|---|---|---|
| npm init | npm init 命令用于初始化一个新的npm项目。它会引导你创建一个package.json文件,其中包含了项目的基本信息和依赖项。这个文件是项目的心脏,记录了项目的元数据和依赖关系。 | npm init -y (初始化package包) |
npm config get registry | 查看当前镜像源 | |
| npm info 依赖名称 | 查看当前依赖包信息 | |
| npm view 依赖名称 versions | 查看当前依赖版所有本号 | |
| npm install | 安装package中的依赖包 | npm install <package_name> |
npm install -g <package_name> | 如果你想在全局范围内安装一个包,可以使用-g或--global标志 | |
| npm install --save-dev <package_name> | 如果你安装的包仅用于开发环境,例如测试框架,你可以使用--save-dev或-D标志。 | |
| npm install <package_name> --no-save | 默认情况下,npm install会将安装的包保存到package.json文件中。如果你想避免自动保存,可以使用--no-save标志。 | |
| npm uninstall <package_name> | npm uninstall 命令用于从项目中移除依赖包。它会从package.json文件中删除指定的包,并卸载它。 | |
| npm uninstall --save <package_name> | 如果你想同时移除全局包和本地包,可以使用--save标志。 | |
| npm update | 更新所有依赖包 | npm update <pack_name> 更新指定依赖包 |
| npm list | 列出当前项目中安装的包以及其依赖关系 | npm list --global 想查看全局安装的包列表,可以使用--global标志 |
| npm search < query > | 搜索npm仓库中的包 | |
| npm view | 查看指定包的详细信息,包括版本、依赖、描述等 | |
| npm ls | 列出当前项目中安装的包的版本树 | |
| npm cache | 管理npm缓存 | npm cache clean --force 清理npm缓存,有时候清理缓存可以解决一些安装问题 |
| npm config list | 查看所有的npm配置 | |
| npm config | 设置或者查看npm配置项 | npm config set < key > < value > (例如设置npm的镜像源为淘宝镜像:npm config set registry registry.npm.taobao.org) |
| npm help | 获取npm命令的帮助信息 | |
| npm version | 修改package.json文件中的版本号 | |
| npm publish | 将你的包发布到npm仓库 | 在发布之前,确保你已经注册了npm账号,并且package.json文件中的信息是完整的。 |
| npm login | 登陆npm账号 | |
| npm whoami | 查看当前登陆的npm账号信息 | |
| npm start | 命令用于启动一个Node.js应用程序。在package.json的scripts部分定义启动脚本后,你可以使用此命令来运行应用程序。 | |
| npm run | 命令用于运行在package.json文件的scripts部分定义的脚本。你可以定义任何自定义脚本,并使用npm run来执行它们。 | npm run <script_name> |
| npm pack | npm pack 命令用于打包项目中的包,生成一个tarball文件,用于分发或安装。 | |
| npm deupe | 命令用于减少依赖项的冗余,优化项目的依赖树 | |
| npm outdated | 检查项目中过时的依赖包 | |
| npm audit | 检查项目中的安全漏洞 | 运行npm audit fix可以自动修复一些已知的安全问题 |
| npm ci | 命令用于在连续集成环境中安装项目依赖。它会严格按照package-lock.json文件中的版本安装依赖,确保构建的一致性。 | |
| npm link | 创建一个符号连接,将本地的包链接到全局npm环境中 | |
| npm rebuild | npm rebuild 命令用于重建所有的依赖包,解决由于更新npm或node版本导致的依赖问题。 | |
| npm set | npm set 命令用于设置多个npm配置项。 | npm set < key > < value > < value > ... |
| npm get | 获取单个npm配置项的值。 | npm get < key > |
| npm owner | npm owner 命令用于管理包的所有权 |
上传自己的依赖包
-
编写一个js自定义模块并导出
exports.myComputed=()=>{ return '123' } -
初始化包描述文件
- npm init package.json
{ "name": "包名", "version": "版本", "description": "module模块名", "main": "文件(xx.js)", "scripts": { "test": "make test" }, "repository": { "type": "Git", "url": "git+git地址" }, "keywords": [ "demo" ], "author": "作者", "license": "ISC", "bugs": { "url": "git地址" }, "homepage": "git地址", } -
登陆npm 账号
- www.npmjs.com 上面的账号
- npm adduser 之后会要求登录账号密码,邮箱
- npm publish 发布包到npm里
-
坑:403 Forbidden
查看npm源:npm config get registry 切换npm源方法一:npm config set registry http://registry.npmjs.org 切换npm源方法二:nrm use npm
cross-env
运行跨平台设置 & 使用环境变量脚本
NODE_ENV环境变量将由 cross-env 设置 打印 process.env.NODE_ENV === 'production'
-
安装
npm i cross-env -D
-
使用package.json
{ "scripts": { "build": "cross-env NODE_ENV=production webpack --config build/webpack.config.js" } }
NRM:镜像源管理工具
nrm是npm的镜像源管理工具,有时候国外资源太慢,使用这个就可以快速地在 npm 源间切换。
- 全局安装: npm install -g nrm
- 查看原: nrm ls
- 切换源: nrm use 名称
- 测试速度:nrm test
npx:npm package extention
npm 从5.2版开始,增加了 npx 命令。它有很多用处,本文介绍该命令的主要使用场景。
Node 自带 npm 模块,所以可以直接使用 npx 命令。万一不能用,就要手动安装一下npm install -g npx
-
解决的问题
调用项目内部安装的模块。比如,项目内部安装了Mocha。
只能在项目脚本和 package.json 的scripts字段里面,如果想在命令行下调用,必须像下面这样项目的根目录下执行 $ node-modules/.bin/mocha --versionnpx 就是想解决这个问题,让项目内部安装的模块用起来更方便,只要像下面这样调用就行了。
npx mocha --version
运行的时候,会到node_modules/.bin路径和环境变量$PATH里面,检查命令是否存在。- 避免全局安装