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
僅安裝 devDependencies
,而不考慮 NODE_ENV
。
--no-optional
不會安裝 optionalDependencies
。
--prod, -P
不會安裝 devDependencies
中的套件。
--filter <package_selector>
已部署專案中包含的檔案
預設情況下,專案的所有檔案都會在部署期間複製。專案的 package.json
可能包含一個「files」欄位,用於列出應複製的檔案和目錄。