技術

【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 を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

SwiftSwitch @ Raspberry Pi 3(ラズベリーパイ)

誕生日ということで会社からRaspberry Pi 3を頂きました! とりあえず …

no image

【AngularJS】 $on, $emit, $broadcast

どうも、なかたです。 AngularJSのコントローラー(スコープ)間のデータや …

どうも中田です。 Let’s Encryptって無料だし便利ですよね …

[Rails] エラー unable to convert unpermitted parameters to hash について

こんにちは。佐藤です。 今回はRailsのpermit!についての備忘録です。 …

[ Ionic ] A problem occurred evaluating project ‘:app’. > Failed to apply plugin [class ‘com.google.gms.googleservices.GoogleServicesPlugin’] > For input string: “+”

こんにちは。たなかです。 相変わらずモバイルアプリ開発やっています。 先日、Io …