Closed8

pnpm-workspaceで複数のcloudflare workersを利用する

knmtknmt

とりあえずディレクトリ作成する

mkdir sample-dir
cd sample-dir
knmtknmt

c3でworkerを作成する

webの作成

pnpm create cloudflare@latest

In which directory do you want to create your application?
-> workers/web

What would you like to start with?
-> Framework Starter

Which development framework do you want to use?
-> React Router

calcの作成

npm create cloudflare@latest

In which directory do you want to create your application?
-> workers/calc

What would you like to start with?
-> Hello World example

Which template would you like to use?
-> Worker only
knmtknmt

pnpm-workspace.yaml を作る

packages:
  - "workers/*"

package.json にscript追加する

"scripts": {
  "dev": "pnpm -r run dev"
},
knmtknmt

calcの src/index.ts を編集
WorkerEntrypoint を継承したクラスを作成する
参考:https://developers.cloudflare.com/workers/runtime-apis/bindings/service-bindings/rpc/

import { WorkerEntrypoint } from 'cloudflare:workers'

export default class Calc extends WorkerEntrypoint {
	async fetch(): Promise<Response> {
		return new Response();
	}
	async add(a: number, b: number): Promise<Response> {
		const result = a + b;
		return new Response(result.toString());
	}
}

knmtknmt

webの wrangler.jsoncservices を追加する

"services": [
		{
			"binding": "CALC",
			"service": "calc"
		}
	]
このスクラップは5ヶ月前にクローズされました