技術

【Grunt】楽々デプロイ(grunt-rsync)

投稿日:2015年8月31日 更新日:

どうも、中田です。

gruntでアプリをデプロイするときにどうやったらいいかぁ〜って調べてたら
こんなの見つけました。

grunt-rsync

rsyncとはご存知unixのミラーリングコマンド
cpとは違って削除ファイルも同期してくれるのがありがたい。

gruntでビルドしたディレクトリを同期対象にしちゃえば楽チンですね。

という訳で作業メモを残しておきます。

前提

・送信側、受信側両方にrsyncが入っている
・送信元から受信側へのssh鍵認証ができていること(.ssh/config設定)

grunt-syncのインストール

作業ディレクトリに移動してnpmでインストールします

npm install grunt-rsync --save-dev

Gruntfile.js ファイル編集

Gruntfileに初期設定とタスクの設定をします

module.exports = function(grunt) {
    grunt.initConfig({
        rsync: {
            dryrun: {
                options: {
                    src: "./dist/*",  // 送信元のディレクトリ
                    dest: "~/app",  // 受信側側のディレクトリ
                    host: "[.ssh/configの設定ホスト]",
                    recursive: true,
                    compareMode: "checksum",
                    syncDestIgnoreExcl: true,
                    dryRun: true,
                    exclude:[ ".git*","*.scss" ]
                }
            },
            deploy: {
                options: {
                    src: "./dist/*",  // 送信元のディレクトリ
                    dest: "~/app",  // 受信側側のディレクトリ
                    host: "[.ssh/configの設定ホスト]",
                    recursive: true,
                    compareMode: "checksum",
                    syncDestIgnoreExcl: true,
                    exclude:[ ".git*","*.scss" ]
                }
            }
        }
    });
    grunt.loadNpmTasks('grunt-rsync');

    grunt.registerTask('dry', ['rsync:dryrun']);
    grunt.registerTask('deploy', ['rsync:deploy']);
};

では、実行!!!
grunt deploy

リモートサーバに適用されることを確認できたら大成功!
これは楽ですね。

感謝サイト
http://kanonji.info/blog/2013/08/19/grunt-rsyncとgrunt-watchを使って開発サーバーをローカルと同期/

-技術

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

[Rails]updateの時だけvalidationを実行させる

こんにちは アプリを作っていて、create時にはvalidationを実行させ …

[Angular6] Angularのユニットテストでprivate変数を読み込む

Angularでテストコードを書いている時、component側で定義しているp …

no image

HTMLタグだけでアコーディオンを実装する

こんにちは htmlタグのdetailsというのは知っていますか? 僕も初めて知 …

[ Rails ]ActiveRecord::RecordInvalidで怒られ、saveができない!

こんにちは。たなかです。 新しいプロジェクトの参画が決まって、今はrailsを書 …

no image

【ionic】Androidビルド失敗!Multiple dex files define

どうも、中田です。 久しぶりにionicでビルドしたらAndroidビルドに失敗 …