diff --git a/cli/tests/init_tests.rs b/cli/tests/init_tests.rs index 40c3c1b9ad..f4df2aa84d 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 4911ca7dd7..25c8dc6f40 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 0000000000..3c5130f1d3 --- /dev/null +++ b/cli/tools/init/templates/deno.json @@ -0,0 +1,5 @@ +{ + "tasks": { + "dev": "deno run --watch main.ts" + } +}