跳至主要内容
版本: 9.x

pnpm deploy

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

用法

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

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

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

在 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>

了解更多关于过滤的信息。

部署项目中包含的文件

默认情况下,部署过程中会复制项目的所有文件。项目的 package.json 可能包含一个 "files" 字段,用于列出应该复制的文件和目录。