Passer au contenu principal
Version : Suivant

pnpm deploy

Deploy a package from a workspace. During deployment, the files of the deployed package are copied to the target directory. All dependencies of the deployed package, including dependencies from the workspace, are installed inside an isolated node_modules directory at the target directory. The target directory will contain a portable package that can be copied to a server and executed without additional steps.

Utilisation :

pnpm --filter=<nom du projet déployé> deploy <dossier cible>

Si vous générez votre projet avant le déploiement, utilisez également l'option --prod pour ignorer l'installation des dépendances de développement (devDependencies).

pnpm --filter=<nom du projet déployé> --prod deploy <target directory>

Utilisation dans une image docker. Après avoir tout généré dans votre monorepo, faites ceci dans une deuxième image qui utilise votre image de base monorepo comme contexte de construction ou dans une étape de génération supplémentaire :

# syntax=docker/dockerfile:1.4

FROM workspace as pruned
RUN pnpm --filter <nom de votre paquet> --prod deploy pruned

FROM node:18-alpine
WORKDIR /app

ENV NODE_ENV=production

COPY --from=pruned /app/pruned .

ENTRYPOINT ["node", "index.js"]

Options

--dev, -D

Seuls devDependencies sont installés indépendamment du NODE_ENV.

--no-optional

optionalDependencies ne sont pas installées.

--prod, -P

Les paquets dans devDependencies ne seront pas installés.

--filter <selecteur_de_paquet>

En savoir plus sur le filtrage.

Fichiers inclus dans le projet déployé

Par défaut, tous les fichiers du projet sont copiés pendant le déploiement. Le fichier package.json du projet peut contenir un champ "files" pour répertorier les fichiers et les dossiers qui devraient être copiés