deno init
,开始一个新项目
命令行用法
o init [选项] [目录或包]...
使用脚本、测试和配置文件搭建一个基本的 Deno 项目
Options Jump to heading
--lib
Jump to heading
生成一个示例库项目.
--npm
Jump to heading
生成一个 npm create-* 项目.
--serve
Jump to heading
为 deno serve
生成一个示例项目.
示例 Jump to heading
$ deno init
✅ 项目已初始化
运行以下命令以开始
// 运行程序
deno run main.ts
// 运行程序并监视文件更改
deno task dev
// 运行测试
deno test
$ deno run main.ts
2 + 3 = 5
$ deno test
检查文件:///dev/main_test.ts
从 main_test.ts 运行 1 个测试
addTest ... 通过 (6ms)
通过 | 1 个通过 | 0 个失败 (29ms)
init
子命令将创建两个文件(main.ts
和 main_test.ts
)。
这些文件提供了一个基本的示例,展示了如何编写 Deno
程序以及如何为其编写测试。main.ts
文件导出了一个 add
函数,用于将两个数字相加,而 main_test.ts
文件包含了对该函数的测试。
你也可以为 deno init
指定一个参数,以在特定目录中初始化项目:
$ deno init my_deno_project
✅ 项目已初始化
运行以下命令以开始
cd my_deno_project
// 运行程序
deno run main.ts
// 运行程序并监视文件更改
deno task dev
// 运行测试
deno test
初始化一个 JSR 包 Jump to heading
通过运行 deno init --lib
,Deno 将引导一个准备发布到 JSR
的项目。
$ deno init --lib
✅ 项目已初始化
运行以下命令以开始
# 运行测试
deno test
# 运行测试并监视文件更改
deno task dev
# 发布到 JSR(试运行)
deno publish --dry-run
在 deno.json
中,你会看到 name
、exports
和 version
的条目已预填充。
{
"name": "my-lib",
"version": "0.1.0",
"exports": "./mod.ts",
"tasks": {
"dev": "deno test --watch mod.ts"
},
"imports": {
"@std/assert": "jsr:@std/assert@1"
}
}
初始化一个 Web 服务器 Jump to heading
运行 deno init --serve
将引导一个与 deno serve
兼容的 Web
服务器。
$ deno init --serve
✅ 项目已初始化
运行以下命令以开始
# 运行服务器
deno serve -R main.ts
# 运行服务器并监视文件更改
deno task dev
# 运行测试
deno -R test
你的 deno.json
文件将如下所示:
{
"tasks": {
"dev": "deno serve --watch -R main.ts"
},
"imports": {
"@std/assert": "jsr:@std/assert@1",
"@std/http": "jsr:@std/http@1"
}
}
现在,你可以通过运行 deno task dev
来启动你的 Web
服务器,它将监视更改。
$ deno task dev
任务 dev deno serve --watch -R main.ts
监视器进程已启动。
deno serve: 正在监听 http://0.0.0.0:8000/
生成一个库项目 Jump to heading
你可以附加一个 --lib
标志,以向你的 deno.json
添加额外的参数,例如
"name"、"version" 和 "exports" 字段。
$ deno init my_deno_project --lib
✅ 项目已初始化
生成的 deno.json
将如下所示:
{
"name": "my_deno_project",
"version": "0.1.0",
"exports": "./mod.ts",
"tasks": {
"dev": "deno test --watch mod.ts"
},
"license": "MIT",
"imports": {
"@std/assert": "jsr:@std/assert@1"
}
}