NodeJS 初学之安装配置环境

1.环境安装

操作系统: Ubuntu 16.04.2 LTS

1.1安装nvm

ryan@ryan-900X5L:~/temp$ curl https://raw.githubusercontent.com/creationix/nvm/v0.33.4/install.sh | bash
  • Note v0.33.4 is the latest version from creationix/nvm
  • 安装好后,关闭重新打开terminal,输入nvm可以验证是否安装
  • 安装目录默认是~/.nvm

使用淘宝镜像

国内环境,使用淘宝镜像。配置环境变量,修改.bashrc追加

# taobao npm mirror
export NVM_NODEJS_ORG_MIRROR=http://npm.taobao.org/mirrors/node

windows安装nvm:

下安装包,安装:https://github.com/coreybutler/nvm-windows/releases

设置淘宝镜像

nvm node_mirror http://npm.taobao.org/mirrors/node/ 
nvm npm_mirror https://npm.taobao.org/mirrors/npm/

1.2 安装node

安装最新的node

nvm install node

或者指定node版本

ryan@ryan-900X5L:~$ nvm install 6.11.4

然后可以检查当前已安装的node版本

ryan@ryan-900X5L:~$ nvm ls
    iojs-v3.3.1
->      v6.11.4
         v8.7.0
default -> node (-> v8.7.0)
node -> stable (-> v8.7.0) (default)
stable -> 8.7 (-> v8.7.0) (default)
iojs -> iojs-v3.3 (-> iojs-v3.3.1) (default)
lts/* -> lts/boron (-> v6.11.4)
lts/argon -> v4.8.4 (-> N/A)
lts/boron -> v6.11.4

可以看到箭头指向了 v6.11.4, 现在切换回最新版本:

ryan@ryan-900X5L:~$ nvm use 8.7.0

这时候可以查看node版本

ryan@ryan-900X5L:~$ node -v
v8.7.0
ryan@ryan-900X5L:~$ npm -v
5.4.2

安装淘宝镜像

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

注意,此时cnpm是安装在当前的npm版本下的。比如:

ryan@ryan-900X5L:~$ nvm use 6.11.4
Now using node v6.11.4 (npm v3.10.10)
ryan@ryan-900X5L:~$ node -v
v6.11.4
ryan@ryan-900X5L:~$ cnpm 
未找到 'cnpm' 命令,您要输入的是否是:
 命令 'cpm' 来自于包 'cpm' (universe)
 命令 'npm' 来自于包 'npm' (universe)
 命令 'cxpm' 来自于包 'xpmutils' (universe)
cnpm:未找到命令
ryan@ryan-900X5L:~$ nvm use 8.7.0
Now using node v8.7.0 (npm v5.4.2)
ryan@ryan-900X5L:~$ cnpm -v
cnpm@5.1.1 (/home/ryan/.nvm/versions/node/v8.7.0/lib/node_modules/cnpm/lib/parse_argv.js)
npm@5.5.1 (/home/ryan/.nvm/versions/node/v8.7.0/lib/node_modules/cnpm/node_modules/npm/lib/npm.js)
node@8.7.0 (/home/ryan/.nvm/versions/node/v8.7.0/bin/node)
npminstall@3.1.4 (/home/ryan/.nvm/versions/node/v8.7.0/lib/node_modules/cnpm/node_modules/npminstall/lib/index.js)
prefix=/home/ryan/.nvm/versions/node/v8.7.0 
linux x64 4.8.0-58-generic 
registry=http://registry.npm.taobao.org

这种不好的是,更新替换npm需要重新安装cnpm. 于是可以推荐这样做:

~/.bashrc中添加alias:

echo '#alias for cnpm 
alias cnpm="npm --registry=https://registry.npm.taobao.org --cache=~/.npm/.cache/cnpm --disturl=https://npm.taobao.org/dist --userconfig=~/.cnpmrc"' >> ~/.bashrc && source ~/.bashrc

这样,不论npm切换什么版本,cnpm都可以使用:

ryan@ryan-900X5L:~$ node -v
v8.7.0
ryan@ryan-900X5L:~$ cnpm -v
5.4.2
ryan@ryan-900X5L:~$ nvm ls
    iojs-v3.3.1
        v6.11.4
->       v8.7.0
default -> node (-> v8.7.0)
node -> stable (-> v8.7.0) (default)
stable -> 8.7 (-> v8.7.0) (default)
iojs -> iojs-v3.3 (-> iojs-v3.3.1) (default)
lts/* -> lts/boron (-> v6.11.4)
lts/argon -> v4.8.4 (-> N/A)
lts/boron -> v6.11.4
ryan@ryan-900X5L:~$ nvm use 6.11.4
Now using node v6.11.4 (npm v3.10.10)
ryan@ryan-900X5L:~$ cnpm -v
3.10.10

如果把terminal关闭之后,再重新打开发现

ryan@ryan-900X5L:~$ node
程序“node”尚未安装。 您可以使用以下命令安装:
sudo apt install nodejs-legacy

什么鬼?没装上?

如果遇到这个,可以查看当前nvm ls, 发现并没有指定node 版本,这时候,nvm use 6.11.4指定一个版本就可以了。

安装yarn

参照 https://yarnpkg.com/zh-Hans/docs/install

设置淘宝镜像

yarn config set registry https://registry.npm.taobao.org

参考

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏俗人笔记

浏览器用户脚本—打造自己的专属页面

一段用户脚本就是一个程序,通常用JavaScript语言来写,用于修改web页面以提升浏览体验。通常通过浏览器的用户脚本管理插件来开启,例如Tampermonk...

6144
来自专栏Spring相关

webpack使用来打包前端代码

同时修改index页面中script的src属性为<script src="bundle.js"></script>

1061
来自专栏L宝宝聊IT

vCenter server 的部署和实施

1767
来自专栏吴柯的运维笔记

Linux系统日志管理常用的工具和指令

前言 日志对于安全来说,非常重要,它记录了系统每天发生的各种各样的事情,你可以通过它来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。 日志主要的功能有:...

62911
来自专栏编程微刊

自动调试自动编译五分钟上手

1777
来自专栏王亚昌的专栏

PHP安装CURL扩展

./configure --prefix=/usr/local/bin/curl/

2353
来自专栏小二的折腾日记

使用gitpage+Hexo搭建自己的博客

摘自:https://xuanwo.org/2015/03/26/hexo-intor/ 写的很详细了,就不仔细写一遍了,就当个记录吧,以后出问题了好解决一点。

942
来自专栏林德熙的博客

WPF 如何在应用程序调试启动

如果在一些无法使用源代码编译的电脑,调试一个exe无法启动,那么需要使用本文的技术。

1202
来自专栏Java面试笔试题

在VMware上安装CentOS版本的Linux虚拟机

2.点击“编辑虚拟机设置”,选择“CD/DVD”,点击"使用ISO映像文件"在本地找到合适的镜像文件;

1232
来自专栏阮一峰的网络日志

HTTP/2 服务器推送(Server Push)教程

HTTP/2 协议的主要目的是提高网页性能。 头信息(header)原来是直接传输文本,现在是压缩后传输。原来是同一个 TCP 连接里面,上一个回应(respo...

3445

扫码关注云+社区