博客搭建-项目工程搭建

创建时间.png 2025-10-04
标签.png AI npm Express tool
阅读量.png 23

前言

上节课,我们已经为搭建博客准备了一系列的工具,从这里开始,我们正式开始搭建项目工程。

为了方便演示整个项目,我创建了 github 项目,https://github.com/workerfe/website-tech,可以在这里查看整个工程,每个章节我会设置不同的分支,大家可以通过切换分支查看整个开发过程。

项目工程架构

我们的项目,分为服务端、前端项目和管理端三个模块。因此,这里准备采用 Monorepo 架构,将这三个模块都放在同一个仓库中。

Monorepo 的具体架构实现,可以看看我之前的文章使用 pnpm 搭建 Monorepo 仓库

同时,为了提供更好的SEO体验,我们将使用 EJS 模版,来渲染前端项目的页面。

因此,我们需要的子仓库只需要两个 admin 和 server,整体结构如下:

项目工程结构图

搭建 Pnpm 工程

还是参考之前的文章使用 pnpm 搭建 Monorepo 仓库,来搭建我们的项目工程。

  1. 项目初始化
# clone 项目
git clone https://github.com/workerfe/website-tech.git
cd website-tech

# pnpm 初始化项目
pnpm init
  1. 搭建 pnpm Monorepo
# 新建 pnpm Monorepo 目录
mkdir apps
mkdir apps/admin
mkdir apps/server

# 生成 pnpm-workspace.yaml 文件
touch pnpm-workspace.yaml
echo "packages:
  - 'apps/*'" > pnpm-workspace.yaml
  1. 项目配置

3.1 项目配置包括 .gitignore 文件,用于忽略一些文件,例如 node_modules 目录。

# 新建 .gitignore 文件
touch .gitignore
echo "node_modules" > .gitignore

3.2 增加 eslint 和 prettier 配置,用来规范代码风格

# 新建 eslint 配置文件
touch .eslintrc.js
echo "module.exports = {}" > .eslintrc.js

# 新建 prettier 配置文件
touch .prettierrc.js
echo "module.exports = {}" > .prettierrc.js

lint 相关的依赖包下:

# 安装 ESLint 和相关依赖
pnpm add -D eslint @babel/eslint-parser eslint-config-alloy eslint-plugin-prettier -w

# 安装 Prettier
pnpm add -D prettier -w

# 如果需要 Babel 核心包(@babel/eslint-parser 的依赖)
pnpm add -D @babel/core -w

具体的配置都在 github 仓库中,不再文档赘述。

  1. 生成服务端项目
# 进入 server 目录
cd apps/server

# 生成 express 项目
express -e


# pnpm 安装依赖
pnpm install
  1. 生成服务端启动命令

在项目根目录的 package.json 中添加启动脚本:

{
  "scripts": {
    "start": "cd apps/server && node ./bin/www",
  },

}

最后,我们可以通过 npm start 来启动服务端项目,默认会监听 3000 端口,访问 http://localhost:3000/ 即可

至此,我们已经完成了服务端项目的搭建。前端项目比较麻烦,我们后续再搭。

原文地址:https://webfem.com/post/website-0,转载请注明出处