初始化项目
现在假定你的项目名称为 myweb
,以下出现 myweb
名称的时候指的都是你的项目名称,在实际工作中请替换成你自己项目的名称。
安装依赖包
创建项目目录 myweb
并使用 vscode 打开项目文件夹
打开 vscode 的 终端
并输入命令初始化一个 node 项目:
yarn init -2
根据命令行提示完善你的 node 项目信息。
添加 zenweb 依赖
yarn add zenweb
关于 zenweb 包
zenweb 包就是将最常用的模块做了整体封装,关于 zenweb 包的更多用法请参考 zenweb包
添加开发依赖
TypeScript 项目
yarn add --dev dotenv typescript rimraf tsc-watch
JavaScript 项目
yarn add --dev dotenv nodemon
添加执行指令
在 package.json
文件的 scripts
块中添加以下指令:
- TypeScript_项目
- JavaScript_项目
package.json
"scripts": {
"start": "node --enable-source-maps app",
"vscode": "yarn dlx @yarnpkg/sdks vscode",
"dev": "rimraf app && tsc-watch --onSuccess \"yarn run dev-start\"",
"dev-start": "node -r dotenv/config --enable-source-maps app",
"build": "rimraf app && tsc"
}
package.json
"scripts": {
"start": "node --enable-source-maps app",
"vscode": "yarn dlx @yarnpkg/sdks vscode",
"dev": "nodemon -r dotenv/config --enable-source-maps app"
}
指令功能介绍:
指令 | 说明 |
---|---|
start | 启动生产环境 |
dev | 监控代码修改并启动开发环境 |
build | 构建生产环境代码(TypeScript 项目使用) |
dev-start | 启动 TypeScript 项目开发环境(用于 tsc-watch 编译完成后调用) |
vscode | 对 VSCode 添加 yarn pnp 支持 |
对 VSCode 添加 yarn pnp 支持
yarn vscode
创建 TypeScript 配置文件
提示
JavaScript 项目跳过这一步
在项目目录中新建文件 tsconfig.json
tsconfig.json
{
"extends": "zenweb/tsconfig-app",
"compilerOptions": {
"outDir": "app"
},
"include": ["src/**/*"]
}
备注
正确配置 tsconfig 文件很关键,因为 zenweb 高度依赖 TypeScript 的 Decorators 特性
配置开发时环境变量
开发时需要指定一些环境变量给项目使用,我们使用 dotenv
工具来解决这个问题。
在项目根目录创建 .env
文件
.env
APP_NAME=myweb
NODE_ENV=development
DEBUG=*
变量说明:
变量 | 说明 |
---|---|
APP_NAME | 指定应用名称,用于日志、性能收集等,集群化应用分组用 |
NODE_ENV | 指定当前使用环境,开发环境为 development ,生产环境为 production |
DEBUG | 指定 debug 函数需要输出的内容, 关于 debug 函数的使用请参考 debug 函数的一些常见用法 |
PORT | 指定服务端口,默认 7001 |
关于生产环境变量
在生产环境中我们会使用 Dockerfile 来指定环境变量,不再需要 dotenv
包,这里的 .env
文件只会用于本地开发
创建项目启动代码
创建 src
文件夹并在文件夹内创建 index.ts
文件
- TypeScript
- JavaScript
src/index.ts
import { create } from "zenweb";
// 创建 zenweb 实例
// create() 函数参数支持内置模块配置,这里先不做任何配置
create()
// 中间这里可以安装配置其它模块,这里暂不做介绍
// .setup(someModule())
// 启动 web 服务
.start();
app/index.js
const { create } = require("zenweb");
create()
.start();
执行命令启动项目
yarn dev
如果一切顺利你应该看到控制台输出内容:
...
boot time: 15 ms
server on: 7001.
此时你可以打开 http://127.0.0.1:7001 查看是否可以访问并看到一个 "Not Found"
对,只有 "Not Found",因为我们还没有任何控制器可供访问。