このサイトは、只今WEB業界で活躍中のデザイナー、プログラマーの方々の情報を集めたweb統合情報サイトです。

Archives Details

2014年 フロントエンドはGrunt.jsでサクっと自動化 まとめ

JavaScript

2014.01.06

この記事は最終更新日から1年以上が経過しています。

もう、2014年も5日が過ぎようとしています。

なー早い。早い。

とにかく時間がない。と誰かの歌詞の様ですが、何事も時間との勝負。

そうお仕事も。

という訳で、Grunt.jsでフロントエンドをサクっと自動化しようではありませんか!

Grunt.js

Grunt.js 公式サイト

http://gruntjs.com

Sassやらlessやらcompassやらと何かと騒がしいフロントエンド事情。

今回のGrunt.jsはそんなフロントエンドを自動化しちゃうツールとなります。

インストールにnpmコマンドを使いますので、node.jsをインストールしましょう。

インストール等はこちらを参照してください。

サーバーサイドJavascript 『node.js』 macにインストール・使用方法

コマンドでサクッとインストールします。

npm install -g grunt-cli

これであなたのPCに grunt cli がインストール出来ました。

もしエラー等が出る場合は、sudoを付けてインストールしてください。

sudo npm install -g grunt-cli

プロジェクトでの利用

コマンドラインの cd 等でgrantを導入するプロジェクトのディレクトリに移動しましょう。

まずはpackage.jsonが必要となりますので、package.jsonを作成します。

package.jsonの作成

package.jsonはnpm initで作成出来ます。

npm init

コマンドラインで、npm initを入力すると対話式でターミナルが色々と聞いてきます。

取り敢えず全てリターンすると、このような感じでpackage.jsonが生成されます。

{
  "name": "grunt",
  "version": "0.0.0",
  "description": "ERROR: No README.md file found!",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": "",
  "author": "",
  "license": "BSD"
}

“name”: “grunt”,と”version”: “0.0.0”は正しくないとエラーの原因となりますので、削除します。

Gruntのモジュールを追加します。

Gruntのモジュール追加

npm install grunt --save-dev

この時、nodeのバージョンが古いとエラーとなるようなので、その際はバージョンアップをします。

バージョンアップのコマンドは以下となります。

sudo npm cache clean -f
sudo npm install -g n
sudo n stable
node -v

上手くいくと、ドカーっとインストールが始まりコマンドラインに表示します。

Gruntモジュールのディレクトリも作成されているかと思います。

ひとまず、これでGruntを使用する準備は整いました。

Gruntプラグインのインストール

Gruntプラグインを追加することによって、色々なタスクをGruntに実行させることが出来ます。

今回は、compassを実行させたいと思いますので、

「grunt-contrib-watch」「grunt-contrib-compass」をインストールします。

プラグインのインストールは

npm install [プラグイン名] --save-dev

となりますので、

npm install grunt-contrib-watch --save-dev
npm install grunt-contrib-compass --save-dev

でインストールします。

先ほどから指定している –save-dev のオプションですが、devDependencies内に 自動的に~を使用したバージョン範囲の指定を追加してくれるオプションとなります。

完了すると、node_modulesに追加されているのが確認できます。

Gruntfile.js

プロジェクトをビルドするためのファイル「Gruntfile.js」を用意します。

このファイルにタスクを追加することによってGruntがタスクを実行します。

「Gruntfile.js」はこのような形となります。

Gruntfile.js

module.exports = function (grunt) {
…
}

今回は、compassを実行するタスクを追加していきます。

compassの「config.rb」は用意している前提となります。

module.exports = function(grunt) {
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),

    compass: {
      dist: {
        options: {
          config: 'config.rb'
        }
      }
    },
    watch: {
      sass: {
        files: ['sass/*'],
        tasks: ['compass']
      }
    }
  });

  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-contrib-compass');

  grunt.registerTask('default', ['watch']);
};

ここまで用意できればGruntを実行できます。

Grunt実行は

grunt

で実行できます。

とりあえず、これでcompassのwatchは行える状態となりました。

Gruntサーバー使用

Gruntは様々なプラグインが用意されています。

今回は、webサーバーをたてるプラグインを導入していきます。

プラグインはgrunt-contrib-connectを使うのでインストールします。

プラグインのインストール

npm install grunt-contrib-connect --save-dev

「Gruntfile.js」に以下を追加。

・grunt.registerTask(‘default’, [‘connect’,’watch’]);(taskにconnect追加)

・connect: { 〜のタスクを追加。

・grunt.loadNpmTasks(‘grunt-contrib-connect’); を追加。

Gruntfile.js

module.exports = function(grunt) {
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),

    connect: {
      server: {}
    },
    compass: {
      dist: {
        options: {
          config: 'config.rb'
        }
      }
    },
    watch: {
      sass: {
        files: ['sass/*'],
        tasks: ['compass']
      }
    }
  });

  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-contrib-compass');
  grunt.loadNpmTasks('grunt-contrib-connect');

  grunt.registerTask('default', ['connect','watch']);
};

connect:{ 〜 は取り敢えずデフォルト設定にするので、空白。

Grunt実行

grunt

taskの connect と watchが実行され、ブラウザでlocalhost:8000 をアクセスすると、設定したプロジェクトを確認することが出来ます。

その他、色々なプラグイン、タスクを追加出来ます。その他のプラグイン等は http://gruntjs.com/plugins にありますので、宜しければ。

ではでは。

Comment

Related Article

Three.js – ShaderMaterialで、ブレンドシェイプ(MorphTarget)アニメーション対応

2025.10.15

JavaScriptで、DOMを放り投げる処理

2024.07.27

2022 VIVA JS World Cup 開幕!! 〜 Vue3で作るサッカーゲーム 〜

2022.12.24

OAuthのフローを可視化できるツールを作ってみました。

2020.05.17

令和の時代に、JavaScriptで Shift-JISファイル作成 全銀データフォーマットに対応する。

2020.03.03

インターネットにて世論調査を行う「世論Web」サービスを始めてみました。

2020.01.31

年末のレトロゲーム熱の際、ファミコンソフト一覧パッケージ作ってました。

2020.01.24

あと10日で「jsdo.it」のサービスが終わってしまう!! ソースダウンロードまだの方は急げぇ〜!

2019.10.21

正規表現 先読み後読み 論理積

2019.07.28

「二段階認証?」という方も 5分で覚える パスワードレス WebAuthnのまとめ

2019.07.07

CATEGORY LIST

LATEST NEWS

効率の良い AI駆動開発について考える

AI・Bot・algorithm

2025.11.09

MacとClaude Codeで構築する cc65(NES)開発環境

Game

2025.10.24

Three.js - ShaderMaterialで、ブレンドシェイプ(MorphTarget)アニメーション対応

JavaScript

2025.10.15

ゲーム開発に必要な基本数学入門

Rust

2025.08.15

Godot 4 & WebAssemblyで様々なデータフォーマットを処理

Godot

2025.07.06

Godot 4 & WebAssemblyで、Hello WebAssembly! - godot-wasm

Godot

2025.06.21

Godot 4 & Rust 始め方

Rust

2025.06.19

ご、ごめん。。今はFlutterの気分じゃないんだ。。

Flutter

2025.05.30

AIのために働け。AI リーダブルコーディングな未来。

AI・Bot・algorithm

2025.05.21

Rustでつくる ふっかつのじゅもん

Rust

2025.04.29

Tauri(Rust) × AI で作る GitGUIクライアントアプリ その5

Rust

2025.04.14

う、動くぞ! Mac mini Apple M4 Pro で PS3ソフトを遊ぶ。RPCS3 Mac版を起動

Game

2025.04.12

RANKING

Follow

SPONSOR

現在、掲載募集中です。



Links

About Us

WEBデザイナーの、WEBデザイナーによる、WEBデザイナーの為のサイト。「みんなで書こう!」と仲間を募ってみたが、結局書くのは自分だけとなってしまいました。日々のメモを綴っていきます。

Entry Profile

Graphical FrontEnd Engineer
- Daisuke Takayama

MAD CITY 北九州市で生まれ育つ。20代はバンド活動に明け暮れ、ふと「webデザイナーになりたい。」と思い、デジタルハリウッド福岡校入学。卒業後、数々の賞を受賞、web業界をざわつかせる。
現在、主に、ゲーム制作中心に港区六本木界隈で活動中。

FOLLOW US