关于环境变量,以及Jenkins 配置环境变量

156 阅读2分钟

问题主要由国际化 $t() 数值不能为空,为空是报错:

message-compiler.mjs:77:19

// 给一个默认值 不至于$t() 为空时报错;
// const title = process.env['VUE_APP_TITLE'] || "site.name"



Vue 项目中环境变量及 Jenkins 配置指南

1. 环境变量作用

在 Vue 项目中,环境变量用于根据不同的环境(开发、测试、生产等)配置不同的参数和行为。它们帮助在不同的部署环境中灵活地控制应用的行为和配置。

常见的应用场景包括:

  • 配置不同的 API 地址
  • 管理敏感信息(如 API 密钥)
  • 启用或禁用某些功能

2. 如何使用环境变量

2.1 配置环境变量

你可以在根目录下创建多个 .env 文件,根据不同的环境进行配置:

# .env.development
VUE_APP_API_URL=http://localhost:3000

# .env.production
VUE_APP_API_URL=https://api.myapp.com
2.2 使用环境变量

在 Vue 代码中,通过 process.env 来访问这些环境变量:

console.log(process.env.VUE_APP_API_URL);

3. Jenkins 配置环境变量

3.1 在 Jenkins 配置中设置环境变量

Jenkins 提供了几种方式来设置环境变量:

  1. 全局环境变量:在 Jenkins 系统配置中设置全局环境变量,这些变量会对所有的构建生效。
  2. 单个 Job 配置中设置:可以在单个构建任务中,通过 Inject environment variables 插件来加载 .env 文件,并将环境变量注入到构建过程中。
  3. Jenkins Pipeline 中设置环境变量:可以在 Jenkinsfile 中通过 environment 关键字设置环境变量。

示例 Jenkinsfile

pipeline {
    agent any

    environment {
        VUE_APP_API_URL = 'https://api.example.com'
        VUE_APP_SECRET_KEY = 'secretkey'
    }

    stages {
        stage('Build') {
            steps {
                script {
                    // 你的打包脚本
                    sh 'npm run build'
                }
            }
        }
    }
}
3.2 使用 Jenkins Credentials 管理敏感信息

对于敏感信息(如 API 密钥、数据库密码等),可以使用 Jenkins 的 Credentials 插件 来管理,而不是直接暴露在环境变量中。

示例:

pipeline {
    agent any

    stages {
        stage('Build') {
            steps {
                withCredentials([string(credentialsId: 'my-api-key', variable: 'API_KEY')]) {
                    // 使用环境变量 API_KEY 来执行构建命令
                    sh 'npm run build'
                }
            }
        }
    }
}
3.3 使用构建前脚本注入环境变量

可以在构建步骤之前使用脚本手动创建 .env 文件,或者从其他地方读取环境变量配置。

示例脚本:

# 构建前读取环境变量文件
if [ -f /path/to/your/.env ]; then
  export $(cat /path/to/your/.env | xargs)
fi
# 继续执行构建
npm run build

4. 总结

  • Vue 项目中环境变量的作用:帮助配置不同环境下的参数,避免硬编码敏感信息,提升灵活性和可维护性。
  • Jenkins 配置环境变量:可以通过 Jenkins 配置、Pipeline 配置、Credentials 插件等多种方式确保环境变量在构建时可用。
  • 不提交 .env 文件到 Git:避免泄露敏感信息,可以通过 Jenkins 配置、环境变量注入等方式确保构建环境正确配置。

你可以将以上内容复制并粘贴到本地文件中,如 .md.txt,这样就可以生成一个文档了。如果你需要进一步格式化,或者需要帮助生成具体的文档,请告诉我!