はじめに
皆さんは Deployer を使っていますでしょうか? Deployer は PHP で作られた、サーバーにコマンドを発行してデプロイを自動的に行う便利なツールです。
最近のフロントエンドの開発はNode.jsを活用して開発しています。 その時 Deployer を使ってデプロイをするにはどうしたら良いでしょうか?
今回は Deployer で TypeScript と SCSS をトランスパイルするやり方を解説します。
構成図
準備
まずデプロイ先のサーバーにSSHが出来るようにしておきましょう。
今回は秘密鍵と公開鍵を使って認証する方法を想定します。
DeployerをDocker内で動かす
./_docker/DockerFile
を以下のように書きましょう。
docker-compose.yml
を以下のように書きましょう。
.env
に以下のコードを追加します。
PRIVATE_KEY_PATH
に秘密鍵のパスを入力します。
この鍵はDockerのVolumeで /private/key
としてマウントされます。
なのでDeploy.phpのホスト定義部分の秘密鍵のパスは '/private/key'
と書けばOKです。
Node.jsでトランスパイルを行う
Deployer でNode.jsを動かしてトランスパイルしていくのですが、その時に注意点があります。
トランスパイルされるコードはローカル上にあるため、Pushし忘れやブランチ間違いなどをすると、トランスパイルしたコードだけ違うことになってしまいます。
それを未然に防ぐため、ローカルとサーバーで コミットハッシュを確認し照合 するようにします。
これにより、万が一の事故を防ぐことが出来ます。 以下はこの部分のコード例です。
トランスパイルしたファイルをアップロード
あとはトランスパイルしたコードをSFTPでアップロードします。
💡
LaravelでViteを使った際を想定したパスにしました。
まとめ
本記事では、Deployerを使ってTypeScriptとSCSSをトランスパイルしてアップロードする方法を書きました。
この方法を使えばコンパイルしたファイルをGitに上げる必要が無くなるため、レポジトリを綺麗に保つことが出来ると思います。