1.1.1 • Published 1 year ago

@meow-meow-dev/vite-plugin-generate-dotenv v1.1.1

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

Vite plugin used to generate a .env file from prefixed variables (usually secrets) found in process.env.

Why ?

When developing projects using Cloudflare pages, development secrets have to be set in a local .dev.vars file. This makes it hard to share them between branches as this file shouldn't be put under version control.

Using this plugin, you can declare the secrets in .bashrc (using a different prefix for each project), and extract automatically them to .dev.var

Sample .bashrc

# .bashrc

MY_PROJECT_DEVELOPMENT_JWT_SECRET="...jwt secret..."
MY_PROJECT_DEVELOPMENT_GOOGLE_SECRET_KEY="...google secret key..."
MY_PROJECT_DEVELOPMENT_FACEBOOK_SECRET_KEY="...facebook secret key..."

Usage in vitest.config.ts

// vite.config.ts

import { defineConfig } from "vite";
import { generateDotenv } from "@meow-meow-dev/vite-plugin-generate-dotenv"

export default defineConfig(({ mode }): UserConfig => {
    return ({
        // ...,
        plugins: [
            // ...,
            generateDotenv({
                outputFile: ".dev.vars",
                prefix: "MY_PROJECT_DEVELOPMENT_",
                requiredKeys: [
                    "JWT_SECRET",
                    "GOOGLE_SECRET_KEY",
                    "FACEBOOK_SECRET_KEY",
                    ],
            })
        ]
    });
});

When running vite dev, the following file will be generated :

# Auto-generated by @meow-meow-dev/vite-plugin-generate-dotenv
# Don't edit ! Any change will be overwritten

JWT_SECRET="...jwt secret..."
GOOGLE_SECRET_KEY="...google secret key..."
FACEBOOK_SECRET_KEY="...facebook secret key..."

Plugin parameters:

nametyperequireddescriptionexample
outputFilestringName of the file to generate".dev.vars" (for Cloudflare Pages)
prefixstringPrefix to look for"MY_PROJECT_DEVELOPMENT"
requiredKeysstring[]Keys for required variables (without prefix)"JWT_SECRET", "FACEBOOK_SECRET_KEY"

The plugin will delete the output file if no matching variable is found !

1.1.1

1 year ago

1.1.0

1 year ago

1.0.0

1 year ago