「 基于V8构建的安全TypeScript运行时 」
关于deno markdown文件 中文 | english
版本 | 与日期 | 最新更新 | 更多 |
---|---|---|---|
commit | ⏰ 2018 9.10 | 源码解释 |
help me live , live need money 💰
deno 的 构成一开始是 Go语言的版本, 现在 作者开始 用 Rust 来 重构 - 2018 9.10
算然说, rust是核心, 但repo却不仅仅有rust, 还有 python, ts, c,...
为了确保可重现的构建,Deno在git子模块中具有大部分依赖项目. 然而, 下面是需要您单独安装:
- Rust
- Node
- Python 2. 不是 3.
- ccache (可选但,有助于加速V8的重建. ) .
# Fetch deps.
git clone --recurse-submodules https://github.com/denoland/deno.git
cd deno
./tools/setup.py
# Build.
./tools/build.py
# Run.
./out/debug/deno tests/002_hello.ts
# Test.
./tools/test.py
# Format code.
./tools/format.py
若自身构建失败, 可以看看,二进制包 / 下载 deno 先行版(for windows) deno.js.cn
explain start, 庆幸有个伟大项目,而它现在还是个孩子
我们从./tools/setup.py
开始, 漫漫长路, 始于足下
./tools/build.py
构建脚本, 最重要的且唯一做得事情就是: 启动
v8-js引擎
的构建工具ninja
对不熟悉ninja的同学, 提及一下:
- ninja为
v8项目
搭建一个使用gcc
之类编译工具的工作流程再加点平台特性, 以此构建不同平台的二进制/发布版本 的功能 gn
是为ninja
服务的, 提供ninja专用的***.ninja
文件- 为什么需要另找
gn
提供ninja文件? 可能是因为,更快速或者扩展配置,也可能***.ninja
语法对用户并不友好 gn
本身也具有自己的**.gn
文件语法, 也就是可以根据不同平台生成对应***.ninja
配置与工具链- 总结(顺序): 编写
**.gn
文件 -> gn 根据这些文件生成**.ninja
-> ninja 再根据这些文件运行搭载配置工具链
这种专有工具使用的专用后缀文件中的 特定语法 - 可以称为DSL
gn
由 depot_tools 提供 - 一点解释
./tools/test.py
./tools/format.py