Writing a modern web app these days can sometimes feel like a tedious process; frameworks, boilerplates, abstractions, dependency management, build proc…
![Automating Front-end Workflow](https://cdn-ak-scissors.b.st-hatena.com/image/square/7af1288e6eda17728c26a8f1b8fbfa539ea6dd7d/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F9e4370b01fb901312c650a36078c81b4%2Fslide_0.jpg%3F2173836)
先週、Grunt.jsについて先日こちらの記事で紹介しました。 今回はECTというJavaScriptを使用したテンプレートエンジンを使ってファイルを生成する、CMSのような仕組みの例を紹介します。 ウェブ制作していると、「ページレイアウトは似てるんだけど、画像や文言はExcelの原稿をコピペしながら...」と、大量なHTMLを生成しないといけないとき、ありますよね? キャンペーンや短期間のサイト運用では、Movable TypeなどのCMSの導入までは求められなかったり。 そんなときに制作サイドで準備出来る、運用効率化の手法です。 導入はこちらの記事を参考にさせていただきました。 ECTの別な使い方についても書いておりますので、こちらも参考になればと思います。 今回やりたいこと CMSの導入規模ではなく、同じフォーマットのHTMLが大量にページがある。 HTMLを触らなくても、簡単に更新
フロントエンドのパラダイムを参考にバックエンド開発を再考する / TypeScript による GraphQL バックエンド開発
最近、Grunt と grunt-contrib-watch を使っているのだけど、grunt-contrib-watch が CPU を消費しがちである。 watch 対象のファイルが少ないうちは grunt-contrib-watch は問題なく動くんだけども、ファイル数が増えてくると CPU の消費量が増えてくる。自分の環境では、1,000 個ぐらいのファイルを監視していると、常時 10% 程度 CPU を消費している。 この問題は既知であり、FAQ には次のように書いている。 たくさんのファイルを監視している場合、デフォルトの interval の値が小さすぎるかもしれない。options: { interval: 5007 } のようにして増やしてみてほしい。詳しくは issues #35 と #145 を参照のこと (※日本語訳は私によるもの) Another reason i
最近自分の周りを見ると、フロントエンドの開発ツールといえばGruntをみんな使ってるんだけど、Middlemanを使うのもけっこういいんじゃないかと思ったので比較してみる。 実現したいこと 例えば次のようなものをつくりたいとする。 HTMLは数ページ〜十数ページくらい(ヘッダ・フッタくらいは共通化したい) JSはconcatしてminifyしたい CSSはSassを使いたい 開発時はwatchしたり動的サーバーなりでJSやCSSは動的にビルドしたい 最終的には成果物として静的ファイルを出力したい まあ、フロントエンドの開発ではいたって普通な要件だと思う。普段サーバーサイドの開発してたり、サーバーサイドと一緒にフロントエンドも開発してる人にとっては、静的ファイルだけ成果物としてあればいいとかあるの?と思うかもしれないけど自分の周りではけっこうよくある。 Gruntとの比較について このような
メディアクエリをまとめるGruntタスク「grunt-combine-media-queries」 CSSソース内に散らばったメディアクエリをまとめたいと思って調べたらGruntタスク「grunt-combine-media-queries」に行き当たりました。 CSSソース内に散らばったメディアクエリとはどういうことかというと、レスポンシブWebデザインでPC向けとSP向けのCSSを記述しなくてはいけないときに、以下のようにPC向けとSP向けの記述をなるべく近くに書くことでCSSのメンテナンス性が高まる反面、1つのCSSファイルに同様なメディアクエリが散らばってファイルサイズを増加させてしまいます。 .header{ width:950px; } @media screen and (max-width: 640px) { .header{ width:auto; } } .footer
[grunt] Gruntfile.jsをチーム共有用と個人用にファイル分割して、gitやsvnのコンフリクトを減らす方法 こんにちは、@yoheiMuneです。 本日はチームでgruntJSを使った開発を行う際に、よく困るGruntファイルのコンフリクト。 チーム共有のGruntfile.jsと、個人が自由に利用するGruntfile.jsを別々のファイルに分割して管理してコンフリクトを減らす方法を、ブログに書きたいと思います。 GruntFile.jsをチームで共有するとファイルのコンフリクトが大変 GruntJSは、JSのミニファイが出来たりCSSプリプロセッサのコンパイルが出来たりと便利なのですが、数人のチームで開発していると、個人毎にGruntfile.jsをカスタマイズしたくなることが多いです。 例えばある人は、ファイルサーバーへアップロードするためのsftpやrsync用のタ
grunt-task-helperというGruntプラグインを使っている。ざっと言うとsrcとdestを比較してフィルターをかけた結果を他のタスクで使えるようになったりするもの。例えばビルトインの比較機能であるnewFileを使うと、更新されたファイルがあった場合にだけ走るタスクと似たようなものが簡単に作れる。 grunt-contrib-concatを使っているとして、そのタスク設定が以下のようになっているとする。 concat: { options: { seperator: ';' }, prettify: { src: [ 'scripts/prettify/prettify.js', 'scripts/prettify/lang-config.js', 'scripts/prettify/lang-css.js', 'scripts/prettify/lang-scss.js',
このシリーズはHTTPリクエストの理解を通じてWebパフォーマンスの重要性について考える5章構成になっている。 【序章】HTTPリクエストは甘え 【CSS Sprite編】スプライト地獄からの解放 【WebFont編】ドラッグ&ドロップしてコマンド叩いてウェーイ 【DataURI編】遅延ロードでレンダリングブロックを回避 【終章】我々には1000msの猶予しか残されていない 3日目は、スマホ環境であればHTTPリクエストを減らすためにWebフォントの採用を考慮しても、やぶさかではないだろう。 まずは下記の画像をご覧頂きたい。 これはプロジェクトで私が使用していたスプライト画像だが(実際は縦にして使用)、このような単純な形状、単色のアイコンであれば、Webフォント化したほうがなにかと都合がよい。 このスプライトであれば、カラー × 矢印の向き × シャドウの有無 パターンの可能性があり、スプ
You may or may not be new to Grunt, and as you become more comfortable using it you’ll most likely desire diving into other aspects of the tool chain in order to expand upon tasks like code linting, pre-processor compiling and especially image optimization which is the task we’ll be discussing today. The Grunt plugin called grunt-contrib-imagemin optimizes .png and .jpg files on the fly. The follo
俺ももう30だし、夏なんで、CSSフレームワークはじめました。 とりあえず、UIエレメントとか作ってないし、CSSフレームワークとか言いながら、GithubのLanguage Staticsは98.3%、JavaScriptってな感じでGrunt Taskばかり充実してるような感じです、現状。 とりあえず、設計方針としてはマシなCSSを書くことを目標としている。この一年、スマホアプリのHTML/CSSコーディングをやってきたわけだが、度重なるUIの変更に耐えうるCSS、そして肥大化しないCSSとは何かずっと考えていて、特に答えという答えもで見つかっていわけだけど、とりあえずはこうしたほうがBetterなんじゃないかというの自分的に固まってきたので、公開してみた。 てか、最強のCSSなんて存在しないからなっ!! t32k/maple - GitHub ありがちな落とし穴 これを作るにあたって
Lumbar is a js-build tool that takes a general codebase and list of platforms to generate modular platform specific applications. Introduction You can think of lumbar as a conditional compiler that targets platforms. However, it doesn’t rely on variables in your source code. There’s no #ifdef or #endifs. Rather you can include and exclude files by associating them with a platform. It uses a json f
2013年04月24日22:15 カテゴリJavaScript grunt-regardeのconfigで他の静的なタスク実行を邪魔しないようにする JSHint+Closure Linter+Gruntで最強のLint環境を目指してみた - はてブロ@ama-ch を見ながら grunt-regarde 使ってみた。 別のタスクに <%= grunt.regarde.changed %> を使用したら、変更されたファイルのみ対象となるのはいいけれど、 jshintを実行するときに grunt jshint を実行するとエラーが発生するようになってしまった。 var path = require('path'); module.exports = function(grunt) { var config = { jshint: { src_test: ['src/**/*.js', 'te
先日JSHint 1.1.0がリリースされ、そのリリースノートに気になる記述がありました。 Adds new option gcl to make JSHint style checks compatible with Google Closure Linter. うそーまじでーなにそれヤバイ! 普段は仕事でClosureにどっぷりなせいもあってClosure Linterを使っているんですが、Closure LinterってJSDocとかお作法的なとこはチェックしてくれるけど、他のLintツールが当たり前にチェックしてくれるとこはやってくれないんですよね。たとえばvarの付け忘れとか。 Closure Compilerを使ってコンパイル時にチェックすることもできるけど、規模が大きくなってくるとその結果が出るまでに10分とか待たないといけなくっていやな感じー。Closure Linterと
このサイトについて Gruntの日本語リファレンスです。 Gruntの本家サイト(英文) の内容を翻訳して作成していますが、誤訳や誤記があると思いますのでその点についてはご了承ください。 もし、誤訳などの間違いを見つけましたら、 @tomof まで教えていただければ幸いです。 News 2013.04.15 サイトをオープンしました。 概要 何故タスクランナーを使うのか? 一言で言えば、自動化のためです。 ファイル圧縮、コンパイル、単体テスト、Lintなどの繰り返し実行しなければいけないタスクを自動化することで、仕事を楽にしてくれます。 タスクランナーを設定すれば、こういった冗長的なほとんどの仕事を、あなたやチームのために行なってくれます。 何故Gruntなのか? Gruntエコシステムは、巨大で日々成長しています。 Gruntを使って文字通り何百ものプラグインから選択し、最小限の努力で自
xs-dev インストール npm i -g xs-dev 初期設定 xs-dev setup --target-branch public helloworld xs-dev run --example helloworld エラーが出るようになるが... /Users/weizen/.local/share/xs-dev-export.sh:source:5: no such file or directory: /export.sh IDF_PATH のパスがないことによるエラーだった ESP32のセットアップをすると解消されるらしい => ならなかった xs-dev info で表示される ESP32 IDF Directory のパスを IDF_PATH に指定 source $HOME/ 今回、中国出身の Designer 王雅さんと一緒に制作した 「寄席の箱」 を SNACK
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く