wangler
v0.0.8
Published
Wrangler wrapper with .env file support
Maintainers
Readme
wangler
Evil wrangler. A place for experiments by Sunil. Use at your own caution.
A wrapper around wrangler. For the lolz.
As of now, this adds just one feature: it automatically loads environment variables from .env files and populates process.env in your Cloudflare Workers.
Why
This is a feature that wrangler will eventually ship, but I wanted it now for my own stuff.
Installation
npm install wangler wranglerUsage
- Create a
.envfile in your project root:
API_KEY=your-api-key
DATABASE_URL=your-database-url- Use the
wanglercommand instead ofwrangler:
npx wangler dev # or wangler deploy- Reference
process.env/import.meta.envin your code:
console.log(process.env.API_KEY); // your-api-key
console.log(import.meta.env.DATABASE_URL); // your-database-urlAdditional features:
These values are also injected into a request handler's
envobject.You can pass a path to a custom
.envfile via--env-file <path>.You can also have environment specific
.envfiles. For example, you can have a.env.devfile for development and a.env.prodfile for production. To use, pass--env <env>where<env>is the name of the environment you want to use. (This works with wrangler's own--envflag, where it'll pick bindings and values defined under[env.<env>]inwrangler.toml)You can pass values in the cli via
--penv <key>:<value>. This is useful for passing in arguments defined in your actual environment (like in CI, you can donpx wangler dev --penv DATABASE_URL:$SUPABASE_URLto pass in a value forDATABASE_URL).You can pass values in the cli via
--penv <key>to have the value be read from the environment. This is useful for passing in arguments defined in your actual environment (like in CI, you can donpx wangler dev --penv DATABASE_URLto have the value for process.env.DATABASE_URL be read from the environment).
"ReferenceError: process is not defined" thrown if env variable does not exist:
- See this issue. tl;dr - add
compatibility_flags = ["nodejs_compat"]to yourwrangler.tomlfor a better error message.
How it works
This tool wraps the standard Wrangler CLI and automatically converts your .env file variables into --define arguments that Wrangler understands. It's a drop-in replacement for Wrangler that adds .env file support.
License
MIT
