让我们一起来学习别人学不动的deno
几天前,有人在github的一个开源项目deno的issue区里用中文发了一篇贴子:
引来各种争论,从而使得这个项目在短短几天时间里就达到了8000
多星的热度,到现在还在持续增长,也许这是团队的一种反向营销策略?
不管怎么说,前端就是一个(至少在目前为止)需要不断学习的领域,说实在的,对于我们这些学习狂来说,如果前端不是有这么多好玩的可以学的东西,我们也不会参与到这个领域里头来。别人抱怨学不动的时候,恰恰是我们开始努力进步的时候,有句话怎么说来着:弯道超车。所以抓住这个机会,让我们来一窥deno
的真面目吧!
关于deno
deno
这个项目的发起者是ry,全名是Ryan Dahl
,这位大神也是每位前端必定要关注的神级人物之一,因为是他于2009
年写出了Node.js
,才使javascript
语言脱离了前端语言这个狭义范畴,开始堂而皇之侵入后端。但是3
年后的2012
年,ry
离开了node
团队,把团队的管理权交给了另一位大神isaacs,这位大神的代表作是——npm
。现在ry
重新出山,推出了deno
。关于deno
的评价,你可以先简单看一看这篇文章。
安装
安装go
其实deno
的安装很简单,你需要先安装好一个go
语言的环境:
brew install go
通常情况下,它会在你的/Users/username
下建立一个名字叫go
的文件夹,以后所有跟go
语言相关的依赖包都会被安装在这个文件夹里,所以你需要设置2
个环境变量,一个是GOPATH
,指向这个文件夹,另一个是PATH
,把/Users/username/go/bin
包含进来,然后go
语言的环境就建立好了。
安装protobuf
接下来,我们开始用brew
安装protobuf
:
brew install protobuf
因为我们前面已经安装好了go
语言的环境,所以我们接下来安装编译deno
所需要的2
个go
语言依赖包:
go get -u github.com/golang/protobuf/protoc-gen-go go get -u github.com/jteeuwen/go-bindata/...
安装v8worker2
v8worker2是deno
所依赖的最重要的一个包,这个包的体积也很大,超过了200
多m
,所以我们先来安装它:
go get -u github.com/ry/v8worker2 cd $GOPATH/src/github.com/ry/v8worker2 ./build.py --use_ccache
安装deno
安装好了v8worker2
之后,我们就可以开始安装deno
了:
go get -u github.com/ry/deno/...
编译
安装好deno
之后,我们需要编译一下deno
才能运行:
cd $GOPATH/src/github.com/ry/deno make
运行
好了,我们来运行一下刚刚编译好的deno
看看效果吧:
./deno testdata/001_hello.js
它的输出很简单,就是一行Hello World
,因为它的源代码也很简单:
console.log("Hello World");
这不就是你熟悉的javascript
吗?
好了,到此为止,那个别人抱怨学不动的deno
已经可以成功地运行在你的电脑上了,你可以进入到testdata
这个文件夹里去看一看更多的基于javascript
和基于typescript
的例子,进一步了解deno。目前deno
还处于很早期很早期的开发阶段,每天都有无数的问题正在被修复,希望deno
能够早日普及,使我们后端基于javascript
和typescript
语言的开发环境变得更为高效。