gpt4 book ai didi

Heroku:如何在部署期间在 Heroku 中的 python 应用程序上运行 npm build?

转载 作者:行者123 更新时间:2023-12-05 03:46:37 24 4
gpt4 key购买 nike

我有一个使用 Python/Django 后端 API 和 Vue.js 前端编写的 Web 应用程序。

我们将 Vue 生成的静态文件作为静态 Django 文件提供。前端应用程序位于 Django 项目的单独文件夹中。

在每次部署之前,我需要在本地运行 npm build 并使用 dist 文件夹进行部署。

我有一个用于部署的小脚本:

cd ./vuejs-frontend
npm install
npm run build

git add --force dist/*
git commit -m "Add dist folder"

local_branch=`git rev-parse --abbrev-ref HEAD`
git push heroku ${local_branch}:master -f
git reset --hard HEAD~1

cd ..

我想移动 npm install 部分以在部署期间执行。我试图将其添加到 heroku 在每次部署期间执行的 release.sh 中。基本上我希望在我的 release.sh 中有这个:

cd ./vuejs-frontend
npm install
npm run build
cd ..

问题是 heroku/python buildpack 没有 node 和 npm。我尝试将 heroku/nodejs 与其他构建一起添加,但是 Heroku 在部署期间提示说它无法找到节点应用程序:

remote:  !     The 'heroku/nodejs' buildpack is set on this application, but was
remote: ! unable to detect a Node.js codebase.

有没有办法在 Heroku 上获取 npm

最佳答案

The problem is that the heroku/python buildpack does not have node andnpm. I tried adding the heroku/nodejs along with the other buildbacks,but then Heroku complains during deployment, that it was not able tolocate a node application:

remote:  !     The 'heroku/nodejs' buildpack is set on this application, but was
remote: ! unable to detect a Node.js codebase.

你需要一个package.json在根级别 ./你的 git 仓库。你只有一个 ./vuejs-frontend .

只需复制 package.json来自 ./vuejs-frontend/package.json并调整"build": "<command>"中的脚本至 cd ./vuejs-frontend && <command>


旁注:这可能会变得有用。您可以定义一些 Heroku 特定的构建步骤:https://devcenter.heroku.com/articles/nodejs-support#heroku-specific-build-steps

"scripts": {
"heroku-prebuild": "echo This runs before Heroku installs dependencies.",
"heroku-postbuild": "echo This runs after Heroku installs dependencies, but before Heroku prunes and caches dependencies.",
"heroku-cleanup": "echo This runs after Heroku prunes and caches dependencies."
}

关于Heroku:如何在部署期间在 Heroku 中的 python 应用程序上运行 npm build?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65181952/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com