让我们一起来学习别人学不动的deno

2,838 阅读3分钟

几天前,有人在github的一个开源项目denoissue区里用中文发了一篇贴子:

图片描述

引来各种争论,从而使得这个项目在短短几天时间里就达到了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所需要的2go语言依赖包:

go get -u github.com/golang/protobuf/protoc-gen-go
go get -u github.com/jteeuwen/go-bindata/...

安装v8worker2

v8worker2deno所依赖的最重要的一个包,这个包的体积也很大,超过了200m,所以我们先来安装它:

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能够早日普及,使我们后端基于javascripttypescript语言的开发环境变得更为高效。