windows 上优雅的安装 node 和 npm

我一直觉得我掌握的这份优雅是被许多人所知道了,直到我发现小伙伴们都下载 .msi 来装 node ,我心中的优雅感终于压制不住。

.msi 安装

windows 的一键安装包,应该是最简单的 node 安装方式,但存在几个缺陷。

  • 比如不能安装多个 node 版本,现在 node 的版本就像火箭似的,所以多个 node 版本并行的需求还是很强烈。
  • 一键安装对 npm 的理解也存在问题,我们完全不知道安装过程中,和 npm 相关的目录有哪些,以及怎样配置这些目录。

多版本的方式当然可以去找些 nvm-windows 之类的解决方案,所以这里着重讲解和 npm 相关的东西。

优雅安装

目录

新建一个目录专门了管理 nodenpm 。 比如在 E 盘下新建一个目录 NODE ,如下:

E:\NODE\node
E:\NODE\npm-global
E:\NODE\npm-cache

node 目录用来存放 node.exe ,当然可以放多个版本; npm-globalnpm i xxxxx -g 的安装目录; npm-cachenpm 的缓存目录,避免相同的包每次都联网下载。

下载 .exe

下载可执行文件(.exe),放入上述 node 目录,这时候的目录如下:

E:/NODE/
    node/
        node.exe
        node-v0.12.0.exe
    npm-global/
    npm-cache

可以存放多个 node 版本,在命令行中可以如下使用:

node --version
node-v0.12.0 --version

当然,你现在直接运行上述命令会报错,因为 node 没有配置到环境变量。 E:\NODE\nodeE:\NODE\npm-global 都要配置到环境变量。 怎样配置环境变量就不是本文关注的了。

npm

目前为止,我们可以在命令行中执行 node 命令了,而且可以多版本共存。接下来我们要让 npm 命令顺心如意。

下载安装 npm

第一次要手动下载并安装 npm 。 在上述 npm-global 目录下新建 node_modules 目录。 来这里下载一个最新版的 npm ,将其解压至 node_modules 目录下,并将 npm-x.x.x 重命名为 npm 。 这时整体目录如下:

E:/NODE/
    node/
    npm-global/
        node_modules/
            npm/
                bin/
                xxx
    npm-cache

bin 目录下的 npm 文件和 npm.cmd 文件拷贝至 npm-global 目录下,这个时候应该就可以执行 npm --version 命令了。

设置 npm 的相关目录

不急着执行 npm install 命令。 我们建了 npm-globalnpm-cache ,是时候把它们利用起来了。

npm config set prefix "E:\NODE\npm-global" # npm install -g xxx 的包都会装到这个目录
npm config set cache "E:\NODE\npm-cache" # 缓存都会装到这个目录

现在试着安装一个包:

npm i -g es-checker
es-checker

回顾下,我们现在讲所有 node 相关的东西全集中在 E:\NODE\ 目录中,并且指定了 npm 的安装目录,npm 对我们不再是黑箱。 优雅安装方式结束。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏bboysoul

在树莓派上搭建使用gitlab

gitlab是一个代码托管平台,因为我的树莓派系统是安装在128G的u盘上的,用来放电影太小,但是空着就是空着了,所以还不如再搭建一个gitlab服务来存放自己...

602
来自专栏木子昭的博客

美轮美奂的Arch, 详解Arch虚拟机安装

2365
来自专栏大神带我来搬砖

防止DHCP获取的DNS修改/etc/resolv.conf文件

想在centos系统中使用DHCP分配IP,但是使用自定义的DNS服务器,这时重启时会将DHCP获得的DNS服务器写到/etc/resolv.conf文件中,优...

2905
来自专栏bdcn

CoreOS裸机iso安装和相关配置 原

裸机通过iso安装CoreOS,个人趟了很多坑,以下就是完整的从零开始部署和配置的过程,希望对大家有用。

762
来自专栏iOS122-移动混合开发研究院

借助 frp 随时随地访问自己的树莓派

前言 看了知乎上的一个「树莓派」是什么以及普通人怎么玩? 的高票回答,双十一时间,果断买了一个树莓派 3. 周一(11.13) 到的货.我目前只想实现一个简单...

4049
来自专栏伦少的博客

Redis Cluster 安装配置

转载请务必注明原创地址为:http://dongkelun.com/2018/01/09/redisClusterDeployment/

3888
来自专栏重庆的技术分享区

使用Pipenv管理Python包和虚拟环境

Pipenv是Python官方推荐的包管理工具。它结合了Pip和Virtualenv的功能,以及Bundler和NPM等其他语言的包装工具的最佳功能。这样可以简...

872
来自专栏opengps

软件安装到D盘失败,提示“您对该安装目录没有写权限”解决办法

火狐安装中不能修改成C盘以外的路径原因终于找到,这个不是账户权限的问题 四部解决问题:(我习惯在安装软件的时候把安装路径中的C改成D) 1,火狐安装:常规...

3509
来自专栏前端儿

npm包与gem包--在线&离线安装

NPM,即为Node的包管理工具,官网为 https://www.npmjs.com/,我们可以在站内搜索所需要的NPM包,了解相关的使用规则

792
来自专栏从零开始学自动化测试

appium+python自动化45-nox连不上问题解决

最新下了个最新版的夜神模拟器,然后adb devices发现连不上模拟器了,报adb server version (36) doesn’t match thi...

571

扫码关注云+社区