Passer au contenu principal
Version : Suivant

pnpm deploy

Déployer un paquet à partir d'un espace de travail. Lors du déploiement, les fichiers du paquet déployé sont copiés dans le répertoire cible. Toutes les dépendances du paquet déployé, incluant les dépendances depuis l'espace de travail, sont installées dans un répertoire node_modules isolé dans le répertoire cible. Le répertoire cible contiendra un paquet portable qui pourra être copié sur un serveur et exécuté sans étapes supplémentaires.

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é

By default, all the files of the project are copied during deployment but this can be modified in one of the following ways which are resolved in order:

  1. The project's package.json may contain a "files" field to list the files and directories that should be copied.
  2. If there is an .npmignore file in the application directory then any files listed here are ignored.
  3. If there is a .gitignore file in the application directory then any files listed here are ignored.