跳到主内容
版本:Next

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.

使用方法:

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 的内容。

已部署项目中包含的文件

默认情况下,部署期间会复制项目的所有文件。 项目的 package.json 可能包含一个“files”字段来列出应该复制的文件和目录。