Dokumentace Domluvit pilot

Podpora modulů

Pages Functions podporuje několik typů modulů, podobně jako Workers ↗. To znamená, že můžete importovat a používat externí moduly, jako je WebAssembly (Wasm), text a binary soubory uvnitř kódu vašich Functions.

Tento průvodce vás naučí, jak tyto různé typy modulů používat ve vašich Pages Functions.

Moduly ECMAScript

Moduly ECMAScript (zkráceně ES Modules) jsou oficiální standardizované ↗ modulový systém pro JavaScript. Jde o doporučený mechanismus pro psaní modulárního a znovupoužitelného kódu JavaScriptu.

ES Modules ↗ jsou definovány použitím import a export příkazy. Níže je uveden příklad skriptu napsaného ve formátu ES Modules a Pages Function, která tento modul importuje:

export function greeting(name: string): string {
  return `Hello ${name}!`;
}
import { greeting } from "../src/greeting.ts";

export async function onRequest(context) {
	return new Response(`${greeting("Pages Functions")}`);
}

Moduly WebAssembly

WebAssembly (zkráceně Wasm) umožňuje kompilovat jazyky jako Rust, Go nebo C do binárního formátu, který lze spustit v celé řadě prostředí, včetně webových prohlížečů, Cloudflare Workers, Cloudflare Pages Functions a dalších běhových prostředí WebAssembly.

Distribuovatelná, načitatelná a spustitelná jednotka kódu ve WebAssembly se nazývá modul ↗.

Níže je základní příklad, jak importovat Wasm Modules do kódu Pages Functions:

import addModule from "add.wasm";

export async function onRequest() {
	const addInstance = await WebAssembly.instantiate(addModule);
	return new Response(
		`The meaning of life is ${addInstance.exports.add(20, 1)}`,
	);
}

Text Modules

Text Modules jsou nestandardizovaný způsob importu prostředků, jako jsou soubory HTML, ve formě String.

Chcete-li importovat níže uvedený soubor HTML do kódu Pages Functions:

<!DOCTYPE html>
<html>
	<body>
		<h1>Hello Pages Functions!</h1>
	</body>
</html>

Použijte následující skript:

import html from "../index.html";

export async function onRequest() {
	return new Response(html, {
		headers: { "Content-Type": "text/html" },
	});
}

Binární moduly

Binární moduly představují nestandardizovaný způsob importu binárních dat, například obrázků, jako ArrayBuffer.

Níže je základní příklad, jak importovat data z binárního souboru do kódu Pages Functions:

import data from "../my-data.bin";

export async function onRequest() {
	return new Response(data, {
		headers: { "Content-Type": "application/octet-stream" },
	});
}

Požádejte o pilot zdarma

Domluvit pilot