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