TIL 026 package.json rootが存在しない場合にHerkuを配備


Nodejsを使用してHerokuにサーバを配備する場合はpackageを使用します.jsonはルートディレクトリで生成する必要があります.
まず包装するjsonは以下のpropertyを追加する必要があります.
"engines": {
    "node": "14.x"
  },
😢問題はexpressジェネレータの使用です.サーバ、クライアントがこのようにフォルダを分割する場合、パッケージ.jsonはルートに存在しません.
こんな時の解決策.

  • package.jsonルートにもう1つ作成しprebuildを使用します.

  • gitサブツリーを使用します.
  • git subtree push --prefix <경로> heroku main
    
    ex) git subtree push --prefix cashbook heroku main
    サブツリーは共有コードの機能です.詳細は、次のブログを参照してください.
    https://blog.rhostem.com/posts/2020-01-03-code-sharing-with-git-subtree
    しかし問題はまた発生し、次は再配置の時...
    Heroku公式サイトで再配置する場合は、パワーオプションを追加することをお勧めします.(強制祭で使わないことを習ったことがありますが...)
    git push -f heroku main
    😢問題はサブツリーに-fオプションがないことです...
    そこで見つけた解決策は以下の通りです.
  • サブツリーを使用して新しいブランチをマイニングし、
  • を配置します.
    git subtree split --prefix <경로> -b deploy // 새 브랜치 파기
    git push -f heroku deploy:main // 새 브랜치를 배포
    git branch -D depoly // 브랜치 삭제
    https://gist.github.com/tduarte/eac064b4778711b116bb827f8c9bef7b
    もう一つの方法はメンバーが教えてくれたもので、
  • backticによる
  • の実現
    git push heroku `git subtree split --prefix <경로> <브랜치>`:main --force
    どちらの方法も使いやすいので、仕切りに注意してほしいです.