質問: ``` @import "common"; @import "hoge"; ``` のようにする事で style.css、style2.scssには必要な内容だけのcss希望する順番でコンパイルできる。 上記のgulpを使ったjsの結合処理でも結合順序や結合するjsファイルを細やかにしていする方法はないんでしょうか? app.jsは下記の順で jquery jquery-ui app2.jsは下記の順で jquery FlexSlider ※)実際にはそれぞれもっと多くのjsを結合する事が多いと思う。 といったjsを2つ作りたい場合gulpfile.jsに読み込みjsを1つづつ列挙していくにもスマートでない気がするので、 > > どのファイルをどういう順番で結合し、何という名前のjsファイルを出力する > > > といった設定をするような方法は無いものでしょうか? 作るサイトがどのページも似たような処理でjsも1種類で良い場合問題ではないのですが、このページではapp.jsを使いたい、このページではapp2.jsが使いたいなどという場合不便さを感じています。
回答: Node.jsに乗り換えましょう。 browserifyやwebpackを扱えるようになるので、 それで目的通りの事が出来ます。 JavaScript→Browserifyの歴史をざっくり紹介 ================================ * GoogleがGoogleMap作ってJavaScriptすげーAjaxすげーってなる * 皆が触るがAjaxの実現が面倒過ぎる * jQueryが登場してAjaxを使ったリッチなサイトが簡単に作れるように * 各社ブラウザーがJavaScriptのエンジンを弄る。「うちのブラウザーのJavaScriptエンジンは他社製品より50%高速だよ!」 * GoogleがV8エンジンをオープンソースとして公開 * JavaScriptはすげー良くなった。サーバーサイドでも使いたい(でもファイルシステムも通信もないじゃんどうすんの) * CommonJS「requireという仕組み思いついたよ」 * Node.js「おっ、その構想もらい。V8エンジンに自前実装のC++でファイルシステムや通信機能付け足して出すわ」 * エンジニア「Node.jsの機能が便利過ぎてJavaScript辛い、なんとかならんか?」 こうして出来たbrowserifyやwebpackは、Node.jsのスクリプトをJavaScriptにコンパイル(?)することが出来ます。 独自実装のrequire関数を宣言し、依存先のファイルを同じJSファイルに詰め込むという作戦でJavaScriptでの依存ライブラリを解決します。