我之前都是在 linux 下使用 nodejs,今天第一次在 windows 下安装配置 nodejs,记录一下过程。linux 遵循文件系统层次化标准(Filesystem Hierarchy Standard, FHS),因此 linux 下 nodejs 的安装一条命令就能搞定。然而在 windows 下安装 nodejs 则需要一些配置才能很好的运行。

下载安装 nodejs

国内用户可以在此下载 nodejs。此处提供的是 LTS 版本

下载 nodejs

如果不想用 LTS 版本,可以去 nodejs 国外的官网下载最新版。

下载 nodejs 最新版

我下载的是当前最新版 15.12.0 版本。

然后就是进行安装,同意许可条款。

同意许可条款

选择安装路径,我选择的是默认路径。

选择安装路径

选择需要安装的内容,默认是全部选择。这里注意要将nodejs 添加到 PATH。后面用起来要方便些。

选择安装内容

然后就安装成功了。打开 powershell 输入 node -vnpm -v 测试一下:

1
2
3
4
> node -v
v15.12.0
> npm -v
7.7.5

显示出版本号则表示安装成功。

配置模块路径和缓存路径

npm 是 nodejs 的包管理器。

环境配置主要配置的是 npm 安装的全局模块所在的路径,以及缓存的路径,之所以要配置,是因为以后在执行类似:npm install 模块名称 -g 的安装语句时,会将安装的模块安装到 C:\Users\用户名\AppData\Roaming\npm 路径中。然而有时你并不希望这个模块安装在自己的用户目录下。

使用管理员打开 powershell 输入:

1
2
npm config set prefix "C:\Program Files\nodejs\node_global"
npm config set cache "C:\Program Files\nodejs\node_cache"

将后面的路径设置为你想更改的路径。很多人都希望将模块和缓存放在 D 盘。我这里还是选择放在nodejs的安装目录下。

然后需要配制环境变量,添加 NODE_PATH 变量。

在设置-系统-关于,拉倒最下面有个高级系统设置。

点开后里面有个环境变量设置。

点击新建;

新建一个NODE_PATH 变量,变量值为你刚刚 npm config set prefix 命令后设置的路径。

安装 cnpm

配置好模块路径和缓存路径后,就可以安装一个 cnpm 模块了。cnpm 是淘宝提供的一个工具,解决 npm 在国内下载过慢的问题。

管理员下打开 powershell,输入:

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

由于之前配制了全局模块的路径,因此 cnpm 会被安装到你设置的路径中。要想在 powershell 中直接运行 cnpm 需要将该路径添加到 Path 变量中。

用之前所述的方法进入到环境变量的设置界面中。找到 Path 变量,点开它。

将你的模块路径添加到最后。

添加完成后,打开 powershell,输入 cnpm -v

1
2
3
4
5
6
7
8
>cnpm -v
cnpm@6.1.1 (C:\Program Files\nodejs\node_global\node_modules\cnpm\lib\parse_argv.js)
npm@6.14.12 (C:\Program Files\nodejs\node_global\node_modules\cnpm\node_modules\npm\lib\npm.js)
node@15.12.0 (C:\Program Files\nodejs\node.exe)
npminstall@3.28.0 (C:\Program Files\nodejs\node_global\node_modules\cnpm\node_modules\npminstall\lib\index.js)
prefix=C:\Program Files\nodejs\node_global
win32 x64 10.0.19042
registry=https://r.npm.taobao.org

显示出类似于上面的内容则表示 cnpm 安装成功。

但是有时会显示

1
cnpm : 无法加载文件 C:\Program Files\nodejs\node_global\node_modules\cnpm.ps1,因为在此系统上禁止运行脚本。

这时需要管理员模式打开 powershell 输入:

1
set-ExecutionPolicy RemoteSigned

进行执行策略更改,根据提示输入 A 回车。然后再执行cnpm -v 此时应该可以显示正确的内容了。

就可以愉快的使用 nodejs 了