Node.js
介绍
Node.js® is a JavaScript runtime built on Chrome’s V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js’ package ecosystem, npm, is the largest ecosystem of open source libraries in the world.
引用官网的一段介绍,几个关键字:V8
,事件驱动,非阻塞
,npm
。
先说V8
,V8确实是非常优秀的一个js引擎,据说已经有10个年头了,谷歌出口,非同凡响。性能非常高,我个人也做过一些测试(CPU密集型的),确实是超过了java的。这在有些人眼中是不可能的,很多人似乎都认为脚本语言的运行效率不会超过编译型的语言的。这里附上一篇2013年的一篇文章,有兴趣的人可以自己去试。
再说说事件驱动,非阻塞
,Node.js没有线程概念,带给开发人员的好处是很显而易见的:你不需要了解线程、协程的概念,不需要在多线程通信时用锁,对于某些吃过这方面亏的人来说,这简直太美好了!
npm
,正如官方所说,npm是一个最大的开源库的生态,现在跟js相关的脚本(有些甚至根本不是js脚本),差不多都可以在npm上找得到。
安装Node.js
详细的安装文档请参考Node.js官网上的文档(实际上我也没发现有什么安装文档)
Windows
Windows上的安装比较简单,从官网下载安装包,按提示一步步安装就结束了。
如果你有这方面的经验,你肯定要笑了,windows上的安装出现的问题千奇百怪,很多人也见怪不怪了。基本上会有这么两类问题:
- 路径问题
- 权限问题
单纯安装Node.js的问题目前我遇到的最多的现象就是环境变量中没有加进去,安装完之后命令行中不识别node和npm命令。如果手动添加环境变量也不好使的话,那就菩萨保佑吧,当然你也可以选择万能的解决方案:重装系统。
Linux
那就比较简单了,有一个工具,名字叫nvm(Node Version Manager),利用它,我们可以非常方便地安装和切换nodejs。安装脚本如下(注意脚本中我在.zshrc文件中添加了一个阿里的镜像,如果你没有使用zsh,可以试着先安装zsh
或是自己手动添加该配置。感谢党,比原站点速度快一些):
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
# or
# wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
echo 'export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node'>>~/.zshrc
安装zsh
的脚本也备注在这里:
sudo apt install zsh
重启终端后,再执行以下命令
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node
nvm install 10.1.0
nvm alias default 10.1.0
安装 YARN
我们需要用到自建的npm仓库,所以我们需要安装yarn,安装命令如下:
npm i -g yarn --registry=http://registry.npm.ifeidao.com
注意 如果安装了新版本的Node.js,需要重新执行以上两条命令。
安装依赖环境 Python(v2.7), C++编译环境
因为有部分npm模块含有c++插件(addons),需要在安装之后进行c++编译,所以会用到python2.x和c++编译器。在Linux上,运行以下命令直接搞定,至今我个人还没遇到python3的问题。
sudo apt install -y python2.7 g++ make
注意 如果是Windows,请使用管理员权限打开Git Bash或Powershell,运行以下命令
yarn global add --production windows-build-tools
这个过程会比较长。因为需要下载python和c++编译环境的安装程序,还是耐心等待吧(虽然完成之后还是有可能环境变量加不上,c++编译环境安装不成功),如果受不了,换Debian。具体操作:
- 在windows开始菜单处搜索 git bash
- 右键点击搜索出来的项目,选择“以管理员身份运行”
- 输入以上命令,回车运行
- 等待安装完成,因为国内众所周知的网络问题速度会比较慢
如果Windows上实在安装不了,请不要折腾了,因为多数情况下那些安装不上的c++依赖不影响你本地的多数开发。