LoginSignup
4
4

More than 5 years have passed since last update.

bower経由でインストールしたbootstrapをbrunchを用いて使えるようにする

Posted at

Phoenix frameworkを使ったことがある人なら見たことがあるであろうbrunch
今回はこのbrunchでbower経由でインストールしたbootstrapを使えるようにしようという話になります。
例としてPhoenix framework上で動作するようにしてみるという前提で書いていきます。

はじめに

brunch-config.jsfilesフィールドは初め以下のようになっていると思いますが、

brunch-config.js
  files: {
    javascripts: {
      joinTo: 'js/app.js'
    },  
    stylesheets: {
      joinTo: 'css/app.css'
    },  
    templates: {
      joinTo: 'js/app.js'
    }   
  },

これのjoinTovendor.jsvendor.cssを加え、bower_componetsを参照するようにしましょう。

brunch-config.js
  files: {
    javascripts: {
      joinTo: {
          'js/app.js': /^(web\/static\/js)/,
          'js/vendor.js':  /^bower_components/
      },  
    },  
    stylesheets: {
        joinTo: {
          'css/app.css': /^(web\/static\/css)/,
          'css/vendor.css':  /^bower_components/
        }   
    },  
    templates: {
        joinTo: 'js/app.js'
    }   
  },

これでbower_componentsにあるjs、cssを参照してvendor.jsvendor.cssに結合してくれるようになりました。

しかし、bootstrapの場合これでは動かない箇所があります。

何が動かないのか

それはbootstrapのディレクトリ内にあるfontsにあたる箇所です。
例えばglyphiconなどですね。

では、どうすればbrunchを使って動くようにできるでしょうか?
答えは簡単でプラグインを使いましょう!

brunchのプラグイン

brunchには様々な機能を補填するためにプラグインが作れるようになっています。
このページを見れば存在する代表的なプラグインが一覧で見れます。
プラグインをbrunchに組み込むことでTypeScriptなどのプリコンパイルや、SASSやLESSなどの対応も可能になります。

で、今回はafter-brunchを使いましょう。
このafter-brunchはbrunchによる処理の終了後に行いたい処理を実行させることが出来るプラグインです。

after-brunchを使う

まずは、プラグインのインストールから行いましょう。

$ npm install --save after-brunch

そして、brunch-config.jsを編集します。
今度はpluginsフィールドに追加していきます。

  plugins: {
    babel: {
      // Do not use ES6 compiler in vendor code
      ignore: [/web\/static\/vendor/]
    }
    // 追加
    afterBrunch: [
      'mkdir -p priv/static/fonts', // fontsディレクトリを作成して
      'cp -f bower_components/bootstrap/dist/fonts/* priv/static/fonts', // bower_componentsからfontsディレクトリにをコピーする
    ]    
  },

このように、after-brunchを使って直接fonts内のフォントを移動させてあげるという形になります。
その他にも色々な用途に使える便利なプラグインになっています。

これでglyphiconも使えるようになり、bootstrapの全機能を使うことができるはずです。
この他にもプラグインには様々な便利なプラグインがあるので、是非ともbrunchを使う前に一度覗いてみてください。
※僕はlessプラグインやsassプラグインなど使っています:)

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4