Estructura actual del proyecto:
… -src -.env.development -.env.uat -.env.production -webpack -webpack.base.js -webpack.dev.js -webpack.uat.js -webpack.prod.js En el paquete web, configuré new Dotenv({ path: "./.env.development" }) para el entorno de desarrollo, etc.
webpack.dev.js
const { merge } = require("webpack-merge"); const base = require("./webpack.base"); const Dotenv = require("dotenv-webpack"); module.exports = merge(base, { mode: "development", output: {...}, devServer: {...}, plugins: [new Dotenv({ path: "./.env.development" })], });webpack.uat.js
const { merge } = require("webpack-merge"); const base = require("./webpack.base"); const Dotenv = require("dotenv-webpack"); module.exports = merge(base, { mode: "production", output: {...}, module: {...}, plugins: [ new Dotenv({ path: "./.env.uat" }), ... ], });webpack.prod.js
const { merge } = require("webpack-merge"); const base = require("./webpack.base"); const Dotenv = require("dotenv-webpack"); module.exports = merge(base, { mode: "production", output: {...}, module: {...}, plugins: [ new Dotenv({ path: "./.env.prod” }), ... ], });paquete.json
"scripts": { "build:uat": "cross-env NODE_ENV=uat webpack --config ./webpack/webpack.uat.js", "build": "webpack --config ./webpack/webpack.prod.js", }, Voy a usar Gitlab CI y CI/CD, así que estoy pensando en cómo manejar las variables .env.
He agregado variables de entorno en gitlab Settings > CI/CD > Variables .
Después de agregarlo, no tengo idea de cómo continuar con el siguiente paso.
Además, ¿cómo pruebo si las variables de entorno están configuradas en gitlab?
Eche un vistazo a Gitlab CI/CD Docs. Son bastante buenos: https://docs.gitlab.com/ee/ci/variables/
Puede definir variables de varias maneras diferentes, como a través del portal web de su proyecto o dentro del archivo .gitlab-ci.yml. Independientemente de dónde los esté definiendo, el acceso a los valores en su archivo .gitlab-ci.yml es el mismo:
test_variable: stage: test script: - echo "$MY_AWESOME_VAR" $MY_AWESOME_VAR es el nombre de la variable que creó, con un $ antepuesto.
Gitlab también crea un montón de variables de entorno estándar relacionadas con el proceso de CI/CD que también puede vincular. https://docs.gitlab.com/ee/ci/variables/predefined_variables.html
Estos pueden ser útiles para un montón de cosas diferentes. Por ejemplo, en los proyectos en los que estoy trabajando, guardo los artefactos de compilación y nombro los artefactos generados usando una concatenación de $CI_ENVIRONMENT_NAME-$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA