将 Prisma 客户端与 SvelteKit 构建捆绑在一起

问题描述 投票:0回答:1

我正在使用 SvelteKit 和 Typescript 包 Prisma Client。 Prisma 客户端是应用程序运行之前必须生成的依赖项。生成 Prisma 客户端,然后使用

npm run dev
运行开发版本。

但是当我使用

npm run build
构建时,如果不使用
node
为 Prisma 客户端执行另一个
npm install
,我就无法使用
npx prisma generate
运行应用程序。

我正在使用以下(可能非常详细)Gitlab

gitlab-ci.yaml
作业脚本来执行额外的
npm install
步骤:

deploy:
  image: alpine
  before_script:
  - apk update && apk add openssh-client rsync
  script:
  - mkdir -p ~/.ssh
  - eval "$(ssh-agent -s)"
  - echo "$PRIVATE_KEY" | ssh-add -
  - ssh-keyscan -H $WEB_SERVER_IP >> ~/.ssh/known_hosts
  - rsync -chavzP --stats . "root@$WEB_SERVER_IP:~/dsp-app"     
  - ssh root@$WEB_SERVER_IP "cd $FOLDER; npm install"
  - ssh root@$WEB_SERVER_IP "cd $FOLDER; npx prisma generate --schema src/lib/backend/prisma/schema.prisma"
  - ssh root@$WEB_SERVER_IP "cd $FOLDER; npm run build"
  - ssh root@$WEB_SERVER_IP "cd $FOLDER; pm2 delete index 2> /dev/null || true"
  - ssh root@$WEB_SERVER_IP "cd $FOLDER; pm2 startup"
  - ssh root@$WEB_SERVER_IP "cd $FOLDER; pm2 start -f build/index.js  --watch"
  - ssh root@$WEB_SERVER_IP "cd $FOLDER; pm2 save"

然而,

npm install
步骤似乎是多余的。有没有办法将 Prisma 客户端与 npm build 捆绑在一起(然后将构建传输到服务器),这样我就不必在运行
npm install
的生产服务器上执行另一个
node
操作?
这个问题类似于 

Prisma 2.0 Beta Deploy

但那里的答案没有显示如何执行此操作。

node.js gitlab svelte prisma sveltekit
1个回答
0
投票

prisma generate && prisma migrate deploy && vite build

生产环境部署

在您的 .yml 文件中:

paths: - prisma/migrations/** # Only run this workflow when migrations are updated

	
© www.soinside.com 2019 - 2024. All rights reserved.