5 分钟快速创建 Cloudflare Pages Functions 项目

快速创建 Cloudflare Pages Functions 项目,不使用构建工具,直接徒手创建 ,第三方库尽可能选择 Node.js 原生依赖较少,也不需要特殊构建的纯 JS 的库。在Cloudflare Pages Functions 构建时,可能出现依赖未能正确解析的问题,本文有一些新发现。

December 19, 2025

该项目不使用构建工具,直接手动创建 Cloudflare Pages Functions

创建新应用程序

  1. 新建文件

例如 /blueseo-pages

  1. 新建首页 HTML 文档
// index.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Pages 示例</title>
</head>
<body>
    <h1>欢迎来到我的网站!</h1>
    <p>该页面不使用构建工具,直接手动创建 Cloudflare Pages Functions。</p>
</body>
</html>
  1. 启动本地开发服务器
// 安装 Wrangler CLI(可选)
npm install -g wrangler

// 目录内右键选择在终端打开
wrangler pages dev . --compatibility-date 2025-09-02

4.创建函数文件

// 新建文件 functions/index.js

export async function onRequest(context) {
  return new Response( "Hello from Cloudflare Pages Function!" );
}
  1. 重启本地服务器
// 重启服务器
wrangler pages dev .

版本增强

  1. 创建 wrangler.jsonc
// wrangler.jsonc
{
  "name": "blueseo-pages",
  "compatibility_date": "2025-09-01",
  "compatibility_flags": [
	"nodejs_compat"
	],
  "pages_build_output_dir": "./",
  "observability": {
    "enabled": true
  },
  "placement": {
    "mode": "smart"
  },
  "vars": {}
}
  1. 创建 package.json
// 自动创建
npm init -y

// 初始化
npm install

scripts 中增加脚本(可选)

{
  "dev": "wrangler pages dev",
  "deploy": "wrangler pages deploy",
}
  1. 创建版本管理
// .gitignore

# Dependency directories
node_modules/

# Optional npm cache directory
.npm

# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local

# wrangler
.wrangler

安装数据库

例如 blueseo-db

  1. 创建 SQL 脚本

将制作好的 schema.sql 以及 triggers.sql,复制到根目录 sql。

  1. Wrangler 应用脚本

// 创建数据库(本地+远程同步)
npx wrangler d1 create blueseo-db

// 本地应用
npx wrangler d1 execute blueseo-db --local --file=./sql/schema.sql

// 本地查询
npx wrangler d1 execute blueseo-db --local --command="SELECT name FROM sqlite_master WHERE type='table'"

// 远程应用
npx wrangler d1 execute blueseo-db --remote --file=./sql/schema.sql

// 远程查询
npx wrangler d1 execute blueseo-db --remote --command="SELECT name FROM sqlite_master WHERE type='table'"
  1. Wrangler 应用触发器
// 本地应用
npx wrangler d1 execute blueseo-db --local --file=./sql/triggers.sql

// 本地查询
npx wrangler d1 execute blueseo-db --local --command="SELECT name, sql FROM sqlite_master WHERE type = 'trigger'"

// 远程应用
npx wrangler d1 execute blueseo-db --remote --file=./sql/triggers.sql

// 远程查询
npx wrangler d1 execute blueseo-db --remote --command="SELECT name, sql FROM sqlite_master WHERE type = 'trigger'"

安装其他库

第三方库尽可能选择 Node.js 原生依赖较少,也不需要特殊构建的纯 JS 的库(可选)。

// 安装 dayjs 及其相关插件
npm install dayjs

// 安装 Markdown 解析库
npm install marked

部署配置

  • 框架预设:无
  • 构建命令:空
  • 构建输出目录:/

重点:如含有 node_modules 依赖,构建命令设置为 npm install,否则为空