vite-register

0.0.9 • Public • Published

vite-register

Use Vite env variables inside Node scripts and test runners via a require hook.


Install

npm install --save-dev vite-register

Features

Pretty much like Vite does, vite-register will statically replace variables.

  • [x] Support import.meta.env.MODE
  • [x] Support import.meta.env.DEV
  • [x] Support import.meta.env.PROD
  • [ ] Support import.meta.env.SSR (defaults to false)
  • [x] Support import.meta.env.BASE_URL
  • [x] Support loading variables
    • [x] from a .env file
    • [x] from a .env.local file
    • [x] from a .env.[mode] file
    • [x] from a .env.[mode].local file
  • [x] Support <UserConfig>.envPrefix (defaults to VITE_)
  • [x] Support <UserConfig>.envDir (defaults to project root)

Usage

This hook can be used with the Node CLI and some test runners supporting hooks via the -r (--require) option.

# Assuming envPrefix => 'VITE_'
echo 'VITE_FOO="hello world"' > .env
echo 'console.log(import.meta.env.VITE_FOO);' > index.js
node -r vite-register index.js
> hello world

vite-register can look into Vite configuration files (vite.config.[ext]) and retrieve base and mode.

In most cases, TypeScript/JSX/ESM support in configuration files and scripts can be provided by third-party hooks like tsm, esbuild-runner or esbuild-register, before vite-register hook.

node -r esbuild-runner/register -r vite-register index.ts

Mocha

↪️ mochajs/mocha

Can be combined with esbuild-runner for TypeScript/JSX/ESM support.

mocha -r esbuild-runner/register -r vite-register [pattern]

uvu

↪️ lukeed/uvu

Can be combined with tsm or esbuild-runner for TypeScript/JSX/ESM support.

uvu -r tsm -r vite-register [pattern]

FAQ

  • Support Jest? Jest currently implements its own require (no hooks support) based on vm, see facebook/jest#11295.

License

MIT

Package Sidebar

Install

npm i vite-register

Weekly Downloads

18

Version

0.0.9

License

MIT

Unpacked Size

13.2 kB

Total Files

5

Last publish

Collaborators

  • tommywalkie