毎回dns-prefetch Online Code Generatorからコピペはさすがに面倒そうなので、URLを指定するとそのページに含まれる外部リソースのドメインから<link rel="dns-prefetch">を生成するCLIツール、dns-prefetchを作成した。Node.jsからPhantomJSを使って書いたので、ドメイン抽出とかも簡単でよかった。

$ dns-prefetch <URL> [--xhtml]

npmを使ってインストールした後、ターミナルでURLを指定して実行するのみ。デフォルトではHTML文法で出力するので、XHTML文法で出力したい場合は--xhtmlオプションを追加する。

$ dns-prefetch http://hail2u.net/
<link href="//googleads.g.doubleclick.net" rel="dns-prefetch">
<link href="//pagead2.googlesyndication.com" rel="dns-prefetch">
<link href="//www.google-analytics.com" rel="dns-prefetch">
<link href="//www.gstatic.com" rel="dns-prefetch">

このウェブサイトに対して実行するとこのような結果になる(ユニーク化され、ソートされる)。さらなるリダイレクト先をたどるのはもうちょっと工夫が必要そうだ。


本当はGruntやgulpから扱えると良いが、URLを指定して行う都合上、タスク・ランナーやビルド・ツールには向いていない気がするので、単独のCLIツールにした。タスク・ランナーやビルド・ツールへのプラグインとして作るのは不可能ではないが、ローカルサーバーを立てるなりする必要がある上に、プロジェクト側にちゃんとしたHTMLファイルが存在しないとならず、ちょっと面倒くさい。PhantomJS製のためインストール負荷が高いことやそんなに頻繁に更新する必要はないことも少しある。