← Cloudflare Workers / workers / local-development
Добавление локальных данных
Используете ли вы Wrangler или Cloudflare Vite plugin ↗, ваш рабочий процесс для доступ данных при локальной разработке остаётся прежним. Однако вы можете только заполнить локальные ресурсы данными через Wrangler CLI.
Как это работает
Когда вы выполняете либо wrangler dev или vite ↗, Miniflare автоматически создаёт локальные версии ваших ресурсов (например, KV, D1, или R2). Это означает, что вы Нельзя необходимо вручную настраивать отдельные локальные экземпляры для каждого сервиса. Однако новые локальные ресурсы не будет не содержит данных, вам потребуется использовать команды Wrangler с --local флаг, чтобы заполнить их. Изменения, внесённые в локальные ресурсы, не повлияют на production-данные.
Заполнение локальных ресурсов данными
Когда вы только начинаете разработку, ваши локальные ресурсы пусты. Их нужно будет заполнить данными с помощью Wrangler CLI.
Пространства имён KV
npx wrangler kv key put <KEY> <VALUE> --binding=<BINDING> --local npx wrangler kv bulk put <FILENAME.json> --binding=<BINDING> --localБакеты R2
npx wrangler r2 object put <BUCKET>/<KEY> --file=<PATH_TO_FILE> --localВы также можете включить другие метаданные.
Базы данных D1
npx wrangler d1 execute <DATABASE_NAME> --command="<SQL_QUERY>" --localnpx wrangler d1 execute <DATABASE_NAME> --file=./schema.sql --localDurable Objects
В отличие от KV, D1 и R2, для Durable Objects нет команд CLI для заполнения их локальными данными. Чтобы добавить данные в Durable Objects при локальной разработке, нужно написать код приложения, который создаёт экземпляры Durable Object и вызывает у них методы, сохраняющие состояние. Обычно для этого создаются эндпоинты для разработки или тестовые маршруты, которые инициализируют ваши Durable Objects нужными данными.
Где хранятся локальные данные
По умолчанию и Wrangler, и плагин Vite сохраняют локальные данные привязок в одном и том же месте: в .wrangler/state папка в каталоге вашего проекта. В ней данные хранятся в подкаталогах для всех локальных привязок: пространств имён KV, бакетов R2, баз данных D1, Durable Objects и так далее.
Очистка локального хранилища
Можно удалить .wrangler/state папку в любой момент, чтобы сбросить локальное окружение, и Miniflare воссоздаст её при следующем запуске dev команду. Также можно удалить отдельные подкаталоги внутри .wrangler/state для более точечной очистки.
Изменение локального каталога данных
Если вы хотите указать другой каталог для локального хранилища, это можно сделать через Wrangler CLI или в конфигурации плагина Vite.
Использование Wrangler
Используйте --persist-to флаг с wrangler dev. Этот флаг нужно указывать каждый раз при выполнении dev команда:
npx wrangler dev --persist-to <DIRECTORY>Использование --local с --persist-to
--local с --persist-toЕсли вы выполните wrangler dev --persist-to <DIRECTORY> чтобы указать пользовательское расположение локальных данных, необходимо также указать тот же --persist-to <DIRECTORY> при выполнении других команд Wrangler, изменяющих локальные данные (и обязательно включите --local флаг).
Например, чтобы создать ключ KV с именем test со значением 12345 в локальном пространстве имён KV выполните:
npx wrangler kv key put test 12345 --binding MY_KV_NAMESPACE --local --persist-to worker-localЭта команда:
- Задаёт ключ KV
testк12345в привязкеMY_KV_NAMESPACE(определённый в вашем конфигурационный файл Wrangler). - Использует
--persist-to worker-localчтобы гарантировать создание данных в worker-local каталог вместо каталога по умолчанию.wrangler/state. - Добавляет
--localфлаг, указывающий, что вы хотите изменить локальные данные.
Если --persist-to не указан, Wrangler по умолчанию использует .wrangler/state для локальных данных.
Использование плагина Cloudflare для Vite
Чтобы настроить, где плагин Vite сохраняет локальные данные, задайте persistState параметр в файле конфигурации Vite:
import { defineConfig } from "vite";
import { cloudflare } from "@cloudflare/vite-plugin";
export default defineConfig({
plugins: [
cloudflare({
persistState: { path: "./my-custom-directory" },
}),
],
});Совместное использование состояния между инструментами
Если вы хотите, чтобы Wrangler и плагин Vite использовали общее состояние, настройте их на использование одного и того же пути хранения.