跳到主要内容

pnpm deploy

从 workspace 部署包。 在部署期间,已部署软件包的文件将复制到目标目录。 已部署包的所有依赖项,包括来自工作区的依赖项,都安装在目标目录的独立 node_modules 目录中。 目标目录将包含一个可移植包,可以将其复制到服务器并执行,无需其他步骤。

使用方法:

pnpm --filter=<deployed project name> deploy <target directory>

如果您在部署之前构建过项目,也可以使用 --prod 选项跳过 devDependencies 安装。

pnpm --filter=<部署的项目名称> --prod deploy <目标文件夹>

在 docker 映像中的用法。 在你的 monorepo 中构建完所有内容后,在第二个镜像中执行此操作,该镜像使用你的 monorepo 基础镜像作为构建上下文或在额外的构建阶段:

# syntax=docker/dockerfile:1.4

FROM workspace as pruned
RUN pnpm --filter <your package name> --prod deploy pruned

FROM node:18-alpine
WORKDIR /app

ENV NODE_ENV=production

COPY --from=pruned /app/pruned .

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

配置项

--dev, -D

不管 NODE_ENV 的值, 只下载 devDependencies 依赖.

--no-optional

不安装 optionalDependencies 依赖

--prod, -P

devDependencies 里的包不会被安装。

--filter <package_selector>

阅读更多有关 filter 的内容。

已部署项目中包含的文件

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.