このサイトは、只今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

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

上級者向け JavaScript 問題集 「javascript-questions」日本語翻訳担当してます。

2019.06.22

SPAサイトでの認証認可 JWT✗Rails5✗Nuxt.js

2019.03.24

CATEGORY LIST

LATEST NEWS

Rust - Actix Web mongo ユーザー登録 JWT認証

Rust

2024.03.24

Rust - Actix Web JWT 認証認可 APIの作成

Rust

2024.02.25

Rust - Actix Web × JSON 静的ファイルをAPIで返却

Rust

2024.01.19

Rust - Actix Web × MongoDB環境をサクッと起動

Rust

2024.01.18

5分で学ぶ RustでWave Function Collapse (波動関数崩壊アルゴリズム)

Rust

2024.01.15

LLaMAモデル GGMLフォーマット(llama.cpp)をRustフレームワーク Leptosを用いて M1MacMiniでサクッと動かす。

Rust

2024.01.11

2024年 狙っているモバイルノートPC

tool

2024.01.07

MacOS XcodeにSDL2を追加

tool

2023.12.26

php 7.4にアップデート

PHP

2023.12.24

5分で覚える Flutter Flameで作る Wave Function Collapse - 波動関数崩壊アルゴリズム

AI・Bot・algorithm

2023.12.20

Flutter - Flameでゲーム作成 (キャラクターの移動)

Flutter

2023.07.23

Flutterで作る ChatGPT Prompt Manager

Flutter

2023.07.12

RANKING

Follow

SPONSOR

現在、掲載募集中です。



Links

About Us

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

Entry Profile

Graphical FrontEnd Engineer
- Daisuke Takayama

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

FOLLOW US