diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2019-09-02 17:07:11 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-02 17:07:11 -0400 |
commit | d43b43ca781b025b9a6a54827ea3ef193972ef24 (patch) | |
tree | 84173b6a653802a41c23145dd3b2048d9075e2a4 /cli_snapshots/build.rs | |
parent | 56508f113d9fe61ffcce4cbbb85e3d6961888e1d (diff) |
Refactor snapshot build (#2825)
Instead of using core/snapshot_creator.rs, instead two crates are
introduced which allow building the snapshot during build.rs.
Rollup is removed and replaced with our own bundler. This removes
the Node build dependency. Modules in //js now use Deno-style imports
with file extensions, rather than Node style extensionless imports.
This improves incremental build time when changes are made to //js files
by about 40 seconds.
Diffstat (limited to 'cli_snapshots/build.rs')
-rw-r--r-- | cli_snapshots/build.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/cli_snapshots/build.rs b/cli_snapshots/build.rs new file mode 100644 index 000000000..cffa3d6b3 --- /dev/null +++ b/cli_snapshots/build.rs @@ -0,0 +1,24 @@ +// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license. +use std::env; +use std::path::PathBuf; + +fn main() { + // To debug snapshot issues uncomment: + // deno_typescript::trace_serializer(); + + let c = PathBuf::from(env::var_os("CARGO_MANIFEST_DIR").unwrap()); + let o = PathBuf::from(env::var_os("OUT_DIR").unwrap()); + let js_dir = c.join("../js"); + + let root_names = vec![js_dir.join("main.ts")]; + let bundle = o.join("CLI_SNAPSHOT.js"); + let state = deno_typescript::compile_bundle(&bundle, root_names).unwrap(); + assert!(bundle.exists()); + deno_typescript::mksnapshot_bundle(&bundle, state).unwrap(); + + let root_names = vec![js_dir.join("compiler.ts")]; + let bundle = o.join("COMPILER_SNAPSHOT.js"); + let state = deno_typescript::compile_bundle(&bundle, root_names).unwrap(); + assert!(bundle.exists()); + deno_typescript::mksnapshot_bundle_ts(&bundle, state).unwrap(); +} |