Configuración
pcpm.json, variables de entorno y configuración de feeds.
PCPM tiene tres niveles de configuración, en orden creciente de precedencia:
pcpm.jsondel workspace — commiteado a tu repo. Compartido con el equipo.- Variables de entorno — para overrides locales de la máquina.
- Flags de la CLI — para invocaciones puntuales.
pcpm.json
Un pcpm.json típico se ve así:
{
"version": "1.0",
"store": {
"path": null,
"auto": true
},
"feeds": [
{
"name": "nuget.org",
"url": "https://api.nuget.org/v3/index.json"
}
],
"updateCheck": true,
"lockfile": {
"floating": "pin"
}
}
Esquema
| Campo | Tipo | Por defecto | Qué hace |
|---|---|---|---|
version | string | "1.0" | Versión del esquema. Sube en cambios incompatibles. |
store.path | string | null | null (auto-detectar) | Sobrescribe la ubicación del store. |
store.auto | boolean | true | Deja que PCPM elija la ubicación del store. |
feeds | FeedConfig[] | [nuget.org] | Feeds NuGet a consultar. |
feeds[].name | string | requerido | Nombre a mostrar. |
feeds[].url | string | requerido | URL del índice NuGet v3. |
feeds[].credentials | object? | null | Auth opcional (ver abajo). |
updateCheck | boolean | true | Comprobar versiones nuevas de PCPM al instalar. |
lockfile.floating | "pin"|"follow" | "pin" | Cómo resolver rangos de versión flotantes. |
dotnet | string? | null | Ruta al ejecutable dotnet. |
msbuild | object? | null | Opciones de integración con MSBuild. |
Autenticación de feeds
Para feeds privados, configura credentials por feed:
{
"feeds": [
{
"name": "private",
"url": "https://pkgs.contoso.com/v3/index.json",
"credentials": {
"username": "ci-bot",
"tokenEnv": "PCPM_FEED_TOKEN"
}
}
]
}
tokenEnv es el nombre de una variable de entorno que contiene el
token. El token se lee en tiempo de ejecución; nunca se escribe en
pcpm.json ni en el lockfile.
Variables de entorno
| Variable | Equivalente en pcpm.json | Notas |
|---|---|---|
PCPM_STORE_PATH | store.path | Sobrescribe la ubicación del store. |
PCPM_FEED_TOKEN | por feed credentials.tokenEnv | Nombre por defecto del env de token. |
PCPM_DOTNET_PATH | dotnet | Ruta al binario dotnet. |
PCPM_NO_UPDATE_CHECK | updateCheck: false | Pon 1 para desactivar. |
PCPM_LOG_LEVEL | (ninguno) | quiet, normal, verbose. |
PCPM_COLOR | (ninguno) | auto, always, never. |
Flags de la CLI
La mayoría de comandos aceptan un pequeño conjunto de flags:
| Flag | Efecto |
|---|---|
--no-color | Desactiva el color ANSI. |
--quiet / -q | Suprime la salida que no sea de error. |
--verbose / -v | Imprime cada decisión del resolver. |
--cwd <path> | Ejecuta como si pcpm se hubiera invocado desde <path>. |
--config <path> | Usa un fichero pcpm.json diferente. |
Overrides por proyecto
Para la mayoría de workspaces, pcpm.json es suficiente. Para
layouts inusuales — p. ej. un único repo que contiene dos workspaces
— puedes poner un pcpm.json en cualquier subdirectorio. PCPM
sube desde el directorio de trabajo actual hasta que encuentra uno.
Validación
pcpm config validate comprueba tu pcpm.json contra el esquema
y reporta cualquier problema. Ejecútalo tras una edición a mano.
Migrar desde una versión antigua
Cuando cambia el esquema de pcpm.json, la migración es
automática: en pcpm install, el loader actualiza tu fichero in
situ. Si la actualización no es trivial (se eliminó un campo,
cambió la forma), el loader escribe un .bak antes e imprime una
advertencia. Lee la advertencia, commitea el fichero nuevo, push.