## 安装Nodejs 1. 下载安装包并安装,官网地址:https://nodejs.org/en 2. 打开CMD,输入 node -v 验证是否安装成功 ## 关于NPM NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种: - 允许用户从NPM服务器**下载别人编写的第三方包**到本地使用。 * 允许用户从NPM服务器下载并安装别人编写的==**命令行程序**==到本地使用。 - 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。 新版的nodejs已经集成了npm,所以安装了nodejs也就一同安装了npm。可以通过输入 **"npm -v"** 来测试是否成功安装,出现版本提示表示安装成功。 ### 升级npm ```shell # 升级到最新版本 npm install npm -g # 升级到指定版本 npm install npm@6.14.13 -g ``` ### npm镜像 由于国内直接使用 npm 的官方镜像是非常慢的,这里推荐使用淘宝 NPM 镜像。 npm 官方原始镜像网址是:https://registry.npmjs.org/ 淘宝 NPM 镜像::https://npm.aliyun.com 腾讯云 NPM 镜像:https://mirrors.cloud.tencent.com/npm/ 华为云 NPM 镜像:https://mirrors.huaweicloud.com/repository/npm/ 网易 NPM 镜像:https://mirrors.163.com/npm/ 中国科学技术大学开源镜像站:http://mirrors.ustc.edu.cn/ 清华大学开源镜像站:https://mirrors.tuna.tsinghua.edu.cn/ ```shell # 查看当前使用的镜像 npm config get registry # 配置镜像 npm config set registry https://registry.npmmirror.com ``` 淘宝 NPM 镜像是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。 你可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm: ```shell npm install -g cnpm --registry=https://registry.npmmirror.com ``` 这样就可以使用 cnpm 命令来安装模块了: ```shell cnpm install [name] ``` 更多信息可以查阅:[https://npmmirror.com/](https://npmmirror.com/) > 原淘宝 npm 域名即将停止解析,正如在《淘宝 NPM 镜像站喊你切换新域名啦》 中预告的那样:[http://npm.taobao.org](http://npm.taobao.org/) 和 [http://registry.npm.taobao.org](http://registry.npm.taobao.org/) 将在 2022.06.30 号正式下线和停止 DNS 解析。域名切换规则: [http://npm.taobao.org](http://npm.taobao.org/) => [http://npmmirror.com](http://npmmirror.com/) [http://registry.npm.taobao.org](http://registry.npm.taobao.org/) => [http://registry.npmmirror.com](http://registry.npmmirror.com/) ### 本地安装和全局安装 ```shell # 本地安装 npm install express # 全局安装 npm install express -g ``` > Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。使用 Express 可以快速地搭建一个完整功能的网站。 **本地安装:** 1、将安装包放在 ./node_modules 下(运行npm命令时所在的目录) 2、可以通过 require() 来引入本地安装的包 **全局安装:** 1、将安装包放在 /usr/local 下或者 node 的安装目录。 2、可以直接在命令行里使用。 **区别:** 全局安装的包一般可提供直接执行的命令。我们通过对一些工具类的包采用这种方式安装,如:gulp, nodemon, live-server, nrm等。 本地安装的包是与具体的项目有关的, 我们需要在开发过程中使用这些具体的功能。 ==**一个经验法则:要用到该包的命令执行任务的就需要全局安装;要通过require引入使用的就需要本地安装-项目包。**== **注:在项目中不能引用全局安装的包** ### npm相关命令 ```shell # 卸载本地安装的模块 npm uninstall 模块名 # 查看本地安装的模块列表 npm ls # 更新模块 npm update 模块名 # 搜索模块 npm search 模块名 ``` ### pnpm pnpm 远比 npm 、yarn 快。 ```shell # 安装pnpm npm install -g pnpm ``` ### 问题 #### certificate has expired 方法1:取消SSL验证 ```shell npm config set strict-ssl false ``` 方法2:更换npm镜像源 ```shell npm config set registry http://registry.cnpmjs.org # 该 registry.npm.taobao.org 地址已更换为 https://registry.npmmirror.com npm config set registry registry.npm.taobao.org ``` ## package.json ### 安装所有依赖 通过以下命令将在 `node_modules` 文件夹中安装 package.json 中 dependencies 配置的依赖项。 ```shell npm install ``` ### 安装单个包 从 npm5 开始,通过以下命令就可以将npm包添加到 package.json 中的文件依赖 dependencies。在 npm5 以前,需要添加参数 --save。 ```shell # npm5开始,自动将添加到package.json依赖中 npm install # npm5 以前 npm install --save ``` * `--save-dev` 安装并添加条目到 `package.json` 文件开发依赖 - `--no-save` 安装但不添加条目到 `package.json` 文件依赖 - `--save-optional` 安装并添加条目到 `package.json` 文件可选依赖 - `--no-optional` 将阻止安装可选依赖 也可以使用标志的简写形式: - -S:`--save` - -D:`--save-dev` - -O:`--save-optional` 当使用 npm 或者 yarn 安装包时,该npm包会被自动插入到 dependencies 配置项中: ```shell npm install yarn add ``` ### npm 脚本 参考 [npm scripts 使用指南 - 阮一峰的网络日志 (ruanyifeng.com)](https://www.ruanyifeng.com/blog/2016/10/npm_scripts.html) ## Node开发 [Node.js 命令行程序开发教程 - 阮一峰的网络日志 (ruanyifeng.com)](https://www.ruanyifeng.com/blog/2015/05/command-line-with-node.html)