mirror of
https://github.com/jbranchaud/til
synced 2026-01-03 23:28:02 +00:00
Add Load And Use Env Var In Node Script as a JavaScript TIL
This commit is contained in:
@@ -10,7 +10,7 @@ pairing with smart people at Hashrocket.
|
|||||||
|
|
||||||
For a steady stream of TILs, [sign up for my newsletter](https://crafty-builder-6996.ck.page/e169c61186).
|
For a steady stream of TILs, [sign up for my newsletter](https://crafty-builder-6996.ck.page/e169c61186).
|
||||||
|
|
||||||
_1379 TILs and counting..._
|
_1380 TILs and counting..._
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -465,6 +465,7 @@ _1379 TILs and counting..._
|
|||||||
- [ISO-8601 Formatted Dates Are Interpreted As UTC](javascript/iso-8601-formatted-dates-are-interpreted-as-utc.md)
|
- [ISO-8601 Formatted Dates Are Interpreted As UTC](javascript/iso-8601-formatted-dates-are-interpreted-as-utc.md)
|
||||||
- [Link A JavaScript Package Locally](javascript/link-a-javascript-package-locally.md)
|
- [Link A JavaScript Package Locally](javascript/link-a-javascript-package-locally.md)
|
||||||
- [List Top-Level NPM Dependencies](javascript/list-top-level-npm-dependencies.md)
|
- [List Top-Level NPM Dependencies](javascript/list-top-level-npm-dependencies.md)
|
||||||
|
- [Load And Use Env Var In Node Script](javascript/load-and-use-env-var-in-node-script.md)
|
||||||
- [Make The Browser Editable With Design Mode](javascript/make-the-browser-editable-with-design-mode.md)
|
- [Make The Browser Editable With Design Mode](javascript/make-the-browser-editable-with-design-mode.md)
|
||||||
- [Matching A Computed Property In Function Args](javascript/matching-a-computed-property-in-function-args.md)
|
- [Matching A Computed Property In Function Args](javascript/matching-a-computed-property-in-function-args.md)
|
||||||
- [Matching Multiple Values In A Switch Statement](javascript/matching-multiple-values-in-a-switch-statement.md)
|
- [Matching Multiple Values In A Switch Statement](javascript/matching-multiple-values-in-a-switch-statement.md)
|
||||||
|
|||||||
43
javascript/load-and-use-env-var-in-node-script.md
Normal file
43
javascript/load-and-use-env-var-in-node-script.md
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
# Load And Use Env Var In Node Script
|
||||||
|
|
||||||
|
The node scripts defined under `scripts` in a `package.json` file can be used
|
||||||
|
to do all sorts of handy development tasks for a project.
|
||||||
|
|
||||||
|
There are times where those scripts would be even more useful if they had
|
||||||
|
access to environment variables specified in the project's `.env` files.
|
||||||
|
|
||||||
|
With the help of [`dotenv-cli`](https://github.com/venthur/dotenv-cli) and
|
||||||
|
[`cross-var`](https://github.com/elijahmanor/cross-var), we can load in and
|
||||||
|
reference the project's env vars.
|
||||||
|
|
||||||
|
As an example, let's say our `.env` file has a `DATABASE_URL`:
|
||||||
|
|
||||||
|
```
|
||||||
|
DATABASE_URL="postgresql://postgres:postgres@localhost:5432/postgres"
|
||||||
|
```
|
||||||
|
|
||||||
|
We can create a node script in `package.json` that accesses that value like so:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"scripts": {
|
||||||
|
"db:url": "dotenv cross-var -- echo \"%DATABASE_URL%\""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Running that command will echo out the value:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
❯ npm run db:url
|
||||||
|
|
||||||
|
> db:url
|
||||||
|
> dotenv cross-var -- echo "%DATABASE_URL%"
|
||||||
|
|
||||||
|
postgresql://postgres:postgres@localhost:9876/postgres
|
||||||
|
```
|
||||||
|
|
||||||
|
You could do something more useful with that value like open a `psql`
|
||||||
|
connection to that local database.
|
||||||
|
|
||||||
|
[source](https://www.genui.com/resources/env-variables-json)
|
||||||
Reference in New Issue
Block a user