Skip to content

Commit d41f31c

Browse files
authored
docs: add warning on client side environment variables (#5243)
Inspired by the create-react-app documentation https://create-react-app.dev/docs/adding-custom-environment-variables
1 parent d84c074 commit d41f31c

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

docs/guide/mode-and-env.md

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,16 @@ An env file simply contains key=value pairs of environment variables:
4343

4444
```
4545
FOO=bar
46-
VUE_APP_SECRET=secret
46+
VUE_APP_NOT_SECRET_CODE=some_value
4747
```
4848

49-
Note that only variables that start with `VUE_APP_` will be statically embedded into the client bundle with `webpack.DefinePlugin`.
49+
::: warning
50+
Do not store any secrets (such as private API keys) in your app!
51+
52+
Environment variables are embedded into the build, meaning anyone can view them by inspecting your app's files.
53+
:::
54+
55+
Note that only `NODE_ENV`, `BASE_URL`, and variables that start with `VUE_APP_` will be statically embedded into the *client bundle* with `webpack.DefinePlugin`. It is to avoid accidentally exposing a private key on the machine that could have the same name.
5056

5157
For more detailed env parsing rules, please refer to [the documentation of `dotenv`](https://github.com/motdotla/dotenv#rules). We also use [dotenv-expand](https://github.com/motdotla/dotenv-expand) for variable expansion (available in Vue CLI 3.5+).
5258

@@ -87,10 +93,10 @@ In both cases, the app is built as a production app because of the `NODE_ENV`, b
8793
You can access env variables in your application code:
8894

8995
``` js
90-
console.log(process.env.VUE_APP_SECRET)
96+
console.log(process.env.VUE_APP_NOT_SECRET_CODE)
9197
```
9298

93-
During build, `process.env.VUE_APP_SECRET` will be replaced by the corresponding value. In the case of `VUE_APP_SECRET=secret`, it will be replaced by `"secret"`.
99+
During build, `process.env.VUE_APP_NOT_SECRET_CODE` will be replaced by the corresponding value. In the case of `VUE_APP_NOT_SECRET_CODE=some_value`, it will be replaced by `"some_value"`.
94100

95101
In addition to `VUE_APP_*` variables, there are also two special variables that will always be available in your app code:
96102

0 commit comments

Comments
 (0)