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>
已部署项目中包含的文件
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:
- The project's
package.json
may contain a "files" field to list the files and directories that should be copied. - If there is an
.npmignore
file in the application directory then any files listed here are ignored. - If there is a
.gitignore
file in the application directory then any files listed here are ignored.