Skip to content

explain: <deno> 基于V8构建的安全TypeScript运行时 ❤️ 很慢地explain 中

Notifications You must be signed in to change notification settings

chinanf-boy/deno-explain

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

deno explain translate-svg

「 基于V8构建的安全TypeScript运行时 」

关于deno markdown文件 中文 | english


explain 🀄️

版本 与日期 最新更新 更多
commit ⏰ 2018 9.10 version 源码解释

生活

help me live , live need money 💰


目录

deno 的 构成一开始是 Go语言的版本, 现在 作者开始 用 Rust 来 重构 - 2018 9.10

deno的语言构成

算然说, rust是核心, 但repo却不仅仅有rust, 还有 python, ts, c,...

deno构建的介绍

官方的构建所需与过程

为了确保可重现的构建,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

python

1. Setup

explain start, 庆幸有个伟大项目,而它现在还是个孩子

我们从./tools/setup.py开始, 漫漫长路, 始于足下

2. Build

./tools/build.py

构建脚本, 最重要的且唯一做得事情就是: 启动v8-js引擎的构建工具ninja

对不熟悉ninja的同学, 提及一下:

  1. ninjav8项目搭建一个使用gcc之类编译工具的工作流程再加点平台特性, 以此构建不同平台的二进制/发布版本 的功能
  2. gn 是为ninja服务的, 提供ninja专用的***.ninja文件
  3. 为什么需要另找gn提供ninja文件? 可能是因为,更快速或者扩展配置,也可能***.ninja语法对用户并不友好
  4. gn本身也具有自己的**.gn文件语法, 也就是可以根据不同平台生成对应***.ninja配置与工具链
  5. 总结(顺序): 编写**.gn文件 -> gn 根据这些文件生成 **.ninja -> ninja 再根据这些文件运行搭载配置工具链

这种专有工具使用的专用后缀文件中的 特定语法 - 可以称为DSL

gn 由 depot_tools 提供 - 一点解释

3. Test.

./tools/test.py

4. Format

./tools/format.py

deno-gn

rust

ts

About

explain: <deno> 基于V8构建的安全TypeScript运行时 ❤️ 很慢地explain 中

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published