【发布时间】:2021-11-19 06:21:36
【问题描述】:
我正在使用dotenv-webpack 设置来自webpack 的环境变量。然后将我的代码构建推送到 S3。我在本地设置了.env 文件,其中APP_BASE = http://localhost:3000 在.env 内。
我已经创建了 github 动作 workflow.yml:
name: React CI
on:
push:
branches:
- "main"
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [15.x]
steps:
- uses: actions/checkout@v1
- run: npm install
- run: npm run build
- uses: jakejarvis/s3-sync-action@master
with:
args: --acl public-read --follow-symlinks --delete
env:
AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: "ap-southeast-2"
SOURCE_DIR: "dist"
APP_BASE: ${{ secrets.APP_BASE }}
在我的 github 操作秘密中,我添加了秘密:
在 webpack 设置上,我设置了systemvars: true:
plugins: [
new Dotenv({
systemvars: true,
}),
它在我的本地主机上运行。
我没有将 .env 文件提交到我的存储库,当我将代码推送到 github 时,github 控制台输出:Failed to load ./.env.。
当我检查编译文件时,它显示var e="MISSING_ENV_VAR".APP_BASE;。这意味着 github 操作没有捕捉到秘密中的APP_BASE。
我该如何解决这个问题?
【问题讨论】:
-
如果没有
.env文件,你不能在 CI webpack 构建中使用DotEnv插件,可以吗?
标签: reactjs webpack environment-variables github-actions dotenv