diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2023-02-20 21:45:34 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-20 21:45:34 +0100 |
commit | 914b08fc19e5c7268e7b04a216337e765d6a06e8 (patch) | |
tree | 39f73f4e046346f358d74ff10f62cb2d5f7078a8 /cli | |
parent | 4d1a14ca7fa9496f36470a7771448a9b006b0204 (diff) |
build: add "include_js_files_for_snapshotting" Cargo feature (#17826)
This allows to not include source code into the binary (because
it will already be included in the V8 snapshot).
Nothing changes for the embedders - everything should still build the
same.
This commit brings the binary size from 87Mb to 82Mb on M1.
Alternative to https://github.com/denoland/deno/pull/17820 and
https://github.com/denoland/deno/pull/17653
---------
Co-authored-by: Leo Kettmeir <crowlkats@toaxl.com>
Diffstat (limited to 'cli')
-rw-r--r-- | cli/Cargo.toml | 8 | ||||
-rw-r--r-- | cli/build.rs | 4 |
2 files changed, 6 insertions, 6 deletions
diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 1a5ab72f0..f3bb67765 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -27,8 +27,8 @@ harness = false path = "./bench/lsp_bench_standalone.rs" [build-dependencies] -deno_runtime = { workspace = true, features = ["snapshot_from_snapshot"] } -deno_core.workspace = true +deno_runtime = { workspace = true, features = ["snapshot_from_snapshot", "include_js_files_for_snapshotting"] } +deno_core = { workspace = true, features = ["include_js_files_for_snapshotting"] } regex.workspace = true serde.workspace = true serde_json.workspace = true @@ -43,13 +43,13 @@ winres.workspace = true [dependencies] deno_ast = { workspace = true, features = ["bundler", "cjs", "codegen", "dep_graph", "module_specifier", "proposal", "react", "sourcemap", "transforms", "typescript", "view", "visit"] } -deno_core.workspace = true +deno_core = { workspace = true, features = ["include_js_files_for_snapshotting"] } deno_doc = "0.55.0" deno_emit = "0.15.0" deno_graph = "0.43.2" deno_lint = { version = "0.38.0", features = ["docs"] } deno_lockfile.workspace = true -deno_runtime.workspace = true +deno_runtime = { workspace = true, features = ["dont_create_runtime_snapshot", "include_js_files_for_snapshotting"] } deno_task_shell = "0.8.1" napi_sym.workspace = true diff --git a/cli/build.rs b/cli/build.rs index 807009a5d..01127fded 100644 --- a/cli/build.rs +++ b/cli/build.rs @@ -360,8 +360,8 @@ fn create_cli_snapshot(snapshot_path: PathBuf) { ); esm_files.push(ExtensionFileSource { specifier: "runtime/js/99_main.js".to_string(), - code: ExtensionFileSourceCode::IncludedInBinary( - deno_runtime::js::SOURCE_CODE_FOR_99_MAIN_JS, + code: ExtensionFileSourceCode::LoadedFromFsDuringSnapshot( + std::path::PathBuf::from(deno_runtime::js::PATH_FOR_99_MAIN_JS), ), }); let extensions_with_js = vec![Extension::builder("cli") |