【问题标题】:How to update dist folder so Heroku serves up new code?如何更新 dist 文件夹以便 Heroku 提供新代码?
【发布时间】:2017-09-22 21:26:30
【问题描述】:

我是节点和部署的新手。我知道我在主分支上所做的每一次更改都需要提交和推送。这样做时我的 Heroku 应用程序不会更新,我已经解决了它,因为它从我的 /dist 文件夹中的 repo 中提供文件。

所以我想知道,每当我更改我的代码时,我是否必须删除我的 dist 文件夹并再次运行“npm run build”以便我的 dist 文件夹是最新的?

【问题讨论】:

    标签: node.js git heroku npm


    【解决方案1】:

    您实际上并没有在每个 heroku 部署中替换 dist 文件夹。您需要删除 heroku 服务器上现有的 dist 文件夹。因此,为了处理这个问题,您可以使用 heroku preinstall 脚本挂钩。您的 package.json 文件应如下所示:

    scripts: {
      preinstall: "rm -rf /dist"
    }
    

    您现在可以运行脚本以在 heroku 上进行部署,它会首先删除 dist 文件夹,然后部署新的构建。

    【讨论】:

      【解决方案2】:

      我不知道你的构建过程涉及什么(如果你愿意,你可以发布你的 package.json),但你可能不需要删除你的 dist 文件夹,否则,是的。您构建代码然后部署它。

      自动执行此操作的一种方法是设置持续交付流程。这将是像 Jenkins 这样的构建服务器或像 Semaphore CI 这样的服务,在推送时触发,为您构建代码并进行部署。

      编辑:如果您使用像他们的webpack 模板这样的 vue-cli 模板,则无需删除 dist 目录,构建脚本会为您处理。 @m-ketan 建议使用 Heroku 的构建钩子是一个很好的建议,但我认为您可能想要使用 postinstall 并让它调用 npm run build。见https://devcenter.heroku.com/changelog-items/844

      【讨论】:

      • 我的 package.json 文件没有太多内容,但是 { "name": "game-of-trivia", "version": "1.0.0", "description": "A Vue.js项目”,“作者”:“Jonathan Puc”,“私人”:true,“脚本”:{“dev”:“node build/dev-server.js”,“start”:“node server.js”,“ build": "node build/build.js" },它基本上是 vue-cli 的样板。然后使用快递。我认为简单地提交和推送更改会更新我的 heroku 应用程序,但事实并非如此。如果我想更新我的应用程序,我必须删除我的 dist 文件夹,重新创建,然后推送。
      猜你喜欢
      • 2017-09-09
      • 2019-09-08
      • 1970-01-01
      • 1970-01-01
      • 2021-07-12
      • 2017-12-16
      • 2012-06-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多