npm 命令的 Jenkins 属性 | AI生成和翻译
我将帮助解释 Jenkins properties 的工作原理以及如何将它们与 npm 命令结合使用。
Jenkins Properties 概述
Jenkins properties 是可以通过多种方式定义的 environment variables:
- Build parameters - 在配置 job 时定义
- Environment variables - 在 Jenkins 配置或 pipeline 中设置
- Properties files - 使用
readProperties或类似方法加载 - Credentials - 存储在 Jenkins 中的安全值
在 npm 命令中使用 Properties
是的,你完全可以为 npm 命令使用 Jenkins properties!方法如下:
在 Pipeline 中:
pipeline {
agent any
environment {
NPM_AUTH_URL = 'https://registry.npmjs.org/'
NPM_TOKEN = credentials('npm-token-id')
}
stages {
stage('Install') {
steps {
sh '''
echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > .npmrc
npm install --registry=${NPM_AUTH_URL}
'''
}
}
}
}
在 Freestyle Job 中:
- 在 job 配置中定义 environment variables
- 在 build steps 中使用
${VARIABLE_NAME}(Linux) 或%VARIABLE_NAME%(Windows) 引用它们
常见模式:
使用 .npmrc 配置:
sh '''
npm config set registry ${NPM_AUTH_URL}
npm config set //registry.npmjs.org/:_authToken ${NPM_TOKEN}
npm install
'''
作为命令参数传递:
sh "npm install --registry=${NPM_AUTH_URL}"
使用 withEnv 代码块:
withEnv(["NPM_AUTH_URL=https://registry.npmjs.org/"]) {
sh 'npm install --registry=$NPM_AUTH_URL'
}
关键点在于 Jenkins properties 会转换为可以在 shell 命令中访问的 environment variables。对于像 tokens 这样的敏感数据,请始终使用 Jenkins credentials 而不是纯文本 properties。