技術

【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

[JavaScript]IEのif文の判定がchromeと違う?

こんにちは、コーテッグのこやまです。 今持っている案件で、IE対応を進めているの …

no image

【Rails】El Captain で’$rails s’ が動かない件

どうも中田です。 開発用MacをEl Capitanにアップデートしたところ r …

no image

[wordpress]contact form7で作ったformをコード内で呼び出す

こんばんは wordpressでformを作る時はcontact form7を使 …

no image

【Angular7】ファイルの指定をルート相対パスにする

こんにちは Angularで別ファイル(例えばcomponentからservic …

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

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