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 条评论
登录 后参与评论

相关文章

来自专栏皮振伟的专栏

[qemu][seccomp]虚拟化安全sandbox技术分析

前言: libvirt-4.3搭配qemu-2.12使用,如果使用默认的编译选项,可能会让qemu无法正常启动虚拟机。会报出来“qemu-system-x86_...

1131
来自专栏程序员叨叨叨

听说你windows任务栏很卡

最近,身边使用windows系统的朋友发现,系统的任务栏总是很卡,下面我们来看看问题的解决方法:

722
来自专栏肖洒的博客

DO部署Python爬虫应用

DigitalOcean里面还有60美金,可以用一下,部署了服务器,我可能就不会再去折腾这个爬虫应用了。

843
来自专栏快乐八哥

PHP+MySQL代码部署在Linux(Ubuntu)上注意事项

最近帮同学做一个网站,同学买的是阿里云服务器,Linux发行版是Ubuntu12.04。我在本地把程序写好,都调试好了。然后他让我自己发布和部署。之前在大学里上...

25510
来自专栏逍遥剑客的游戏开发

LG WebOS TV降级方法

2979
来自专栏程序员的碎碎念

docker 搭建LAMP开发环境

小编作为一个小白,在搭建lamp这个集成开发环境上卡了有4/5天,遇到了不少坑,有时候令人绝望,有时候又让人兴奋。作为小白,学得不深,在这里把这段时间踩过的坑以...

1374
来自专栏尾尾部落

centos搭建ftp服务器

vsftpd 是一款在Linux发行版中最受推崇的FTP服务器程序,它是一个基于GPL协议的开源程序。vsftpd代表very secure FTP daemo...

1603
来自专栏Java开发

Kibana使用高德地图

882
来自专栏伪君子的梦呓

在 VMware workstation 安装 CentOS 虚拟机

763
来自专栏Vamei实验室

WordPress快速建站

这篇文章将介绍如何使用WordPress建立一个博客、网站和论坛。WordPress是基于PHP的博客架设工具。它提供了一套开源的PHP代码以方便用户在支持PH...

77612

扫码关注云+社区