因此,在我的项目中,我在项目的根上有一个.env文件,它具有所有阶段的默认环境变量。然后我有了配置文件夹,其中保存了每个环境的环境和serverless.yml文件(、.env.staging、.env.production等)::
如下所示:
-root:
-config:
-staging:
.env.staging
serverless.yml当我跑步时:
env-cmd -f config/staging/.env.staging next build然后:
next start它加载所有的环境变量.env + .env.staging。这是好的,它的工作完美,但只在当地。
这是我的serverless.yml文件:
my-app-staging:
component: "@sls-next/serverless-component@1.18.0"
inputs:
nextConfigDir: ../../
bucketName: my-app-staging
cloudfront:
comment: my-app-staging因此,对于分阶段部署,我运行以下命令:
env-cmd -f config/staging/.env.staging next build && cd config/staging && sls在已部署的版本中,根.env中的所有环境变量都是可用的,但不能使用.env.staging中的。
我做错什么了?
发布于 2021-01-27 13:35:27
因此,在运行sls命令来部署应用程序时,这是一个不同的环境,是无服务器使用的。为了在无服务器构建上传递该环境,您应该传递所需的环境。
在这种情况下,部署脚本应该如下所示:
"build:staging": "env-cmd -f environment/staging/.env.staging next build",
"deploy:staging": "npm run build:staging && cd config/staging && env-cmd -f .env.staging sls"https://stackoverflow.com/questions/65916940
复制相似问题