diff options
author | Bartek Iwańczuk <biwanczuk@gmail.com> | 2022-12-08 06:34:28 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-08 06:34:28 +0100 |
commit | a6b5d05311f54d085a1e44f4a51717b4c0a4c74b (patch) | |
tree | eb1ab43a8ec73f311fe4e4401d20df5e0d6d4a7b | |
parent | 44b2b950fd20e59fca1e6dddf522d456d2fd622f (diff) |
feat(init): Generate deno.json by default (#16389)
Updates `deno init` subcommand to create a `deno.json` when initializing
a new project.
Slightly changes the output, to make it more readable.
-rw-r--r-- | cli/tests/init_tests.rs | 7 | ||||
-rw-r--r-- | cli/tools/init/mod.rs | 19 | ||||
-rw-r--r-- | cli/tools/init/templates/deno.json | 5 |
3 files changed, 29 insertions, 2 deletions
diff --git a/cli/tests/init_tests.rs b/cli/tests/init_tests.rs index 40c3c1b9a..f4df2aa84 100644 --- a/cli/tests/init_tests.rs +++ b/cli/tests/init_tests.rs @@ -28,8 +28,11 @@ mod init { assert_contains!(stderr, "Project initialized"); assert!(!stderr.contains("cd")); assert_contains!(stderr, "deno run main.ts"); + assert_contains!(stderr, "deno task dev"); assert_contains!(stderr, "deno test"); + assert!(cwd.join("deno.json").exists()); + let mut deno_cmd = util::deno_cmd_with_deno_dir(&deno_dir); let output = deno_cmd .current_dir(cwd) @@ -80,8 +83,11 @@ mod init { assert_contains!(stderr, "Project initialized"); assert_contains!(stderr, "cd my_dir"); assert_contains!(stderr, "deno run main.ts"); + assert_contains!(stderr, "deno task dev"); assert_contains!(stderr, "deno test"); + assert!(cwd.join("my_dir/deno.json").exists()); + let mut deno_cmd = util::deno_cmd_with_deno_dir(&deno_dir); let output = deno_cmd .current_dir(cwd) @@ -131,6 +137,7 @@ mod init { assert!(output.status.success()); let stdout = String::from_utf8(output.stdout).unwrap(); assert_eq!(stdout, ""); + assert!(cwd.join("deno.json").exists()); let mut deno_cmd = util::deno_cmd_with_deno_dir(&deno_dir); let output = deno_cmd diff --git a/cli/tools/init/mod.rs b/cli/tools/init/mod.rs index 4911ca7dd..25c8dc6f4 100644 --- a/cli/tools/init/mod.rs +++ b/cli/tools/init/mod.rs @@ -1,6 +1,7 @@ // Copyright 2018-2022 the Deno authors. All rights reserved. MIT license. use crate::args::InitFlags; +use crate::colors; use crate::deno_std; use deno_core::anyhow::Context; use deno_core::error::AnyError; @@ -40,12 +41,26 @@ pub async fn init_project(init_flags: InitFlags) -> Result<(), AnyError> { .replace("{CURRENT_STD_URL}", deno_std::CURRENT_STD_URL.as_str()); create_file(&dir, "main_test.ts", &main_test_ts)?; - info!("✅ Project initialized"); - info!("Run these commands to get started"); + create_file(&dir, "deno.json", include_str!("./templates/deno.json"))?; + + info!("✅ {}", colors::green("Project initialized")); + info!(""); + info!("{}", colors::gray("Run these commands to get started")); + info!(""); if let Some(dir) = init_flags.dir { info!(" cd {}", dir); + info!(""); } + info!(" {}", colors::gray("// Run the program")); info!(" deno run main.ts"); + info!(""); + info!( + " {}", + colors::gray("// Run the program and watch for file changes") + ); + info!(" deno task dev"); + info!(""); + info!(" {}", colors::gray("// Run the tests")); info!(" deno test"); Ok(()) } diff --git a/cli/tools/init/templates/deno.json b/cli/tools/init/templates/deno.json new file mode 100644 index 000000000..3c5130f1d --- /dev/null +++ b/cli/tools/init/templates/deno.json @@ -0,0 +1,5 @@ +{ + "tasks": { + "dev": "deno run --watch main.ts" + } +} |