1.0.5 • Published 8 years ago

elixirx v1.0.5

Weekly downloads
1
License
GPL-3.0
Repository
github
Last release
8 years ago

npm version

DEPRECATED

... You don't need to reinvent the wheel!!

Elixirix

Elixir Helper For Those Who DO!

Why ?

  • Easy and clean interface
  • Works out-of-box alongside other elixir mixes
  • Auto generate assets
  • Faster workflow (vendors are compiled once)
  • Npm assets compability
  • CSS Flipper support for RTL stylesheets
  • Multi package support
  • You will never worry about assets structure.
  • Use Awesome Rollup Bundler.

Install

npm install --save elixirx

How does it works

Elixirx is just a set of helpers for elixir. when you run gulp --production above script will compile, minify and contatinate all vendor assets + your project base assets in assets/build directory. when you run either gulp of gulp watch this script only compiles myapp.scss and myapp.js, contatinates theme to vendor and base asssets and publishes them to public directory. this will save you lots of build time while developing :)

Usage

gulpfile.js

 // Require both Elixir and Elixirx modules
var Elixir = require('laravel-elixir');
var Elixirx = require('elixirx');

// Elixir entry point
Elixir(function (mix) {

    // Create a package wrapper named `myapp`
    // First argument is Elixir mix and will be used for pipes
    // Second argument is your package name
    // Third argumend flips everything in that package!
    var app = new Elixirx(mix, 'myapp', true);
    
    // Define vendor css files
    // This function automaticly generates and watches package css files (see project structure)
    // It also automaticly appends myapp.base.scss to vendors array
    app.css([
            Elixirx.npm('bootstrap/dist/css/bootstrap.min.css'),
            Elixirx.npm('font-awesome/css/font-awesome.min.css'),
    ]);

    // Define vendor js files
    // This function automaticly generates and watches package js files (see project structure)
    // It also automaticly appends myapp.base.js to vendors array
    app.js([
            Elixirx.npm('jquery/dist/jquery.min.js'),
            Elixirx.npm('tether/dist/js/tether.min.js'),
            Elixirx.npm('bootstrap/dist/js/bootstrap.min.js'),
    ]);
}

Project Structure

Assume you have an app called myapp. project structure should be something like this:

  • assets
    • build (generated)
    • sass
      • myapp
        • myapp.base.scss
        • myapp.scss
    • js - myapp - myapp.base.js - myapp.js
  • public
    • css
      • myapp.css (generated)
    • js

      • myapp.js (generated)

For compiling full vendors run gulp --production For watch run gulp watch

Assets compile order For a cheat sheet, remember pipe diagram below:
( ( Base Assets -> Vendor Assets ) -> App Assets )

Tips

  • You can use Elixirx.npm() helper to make relative pathes to node_modules folder.

  • You can use Elixirx.assetsVendor () helper to make relative pathes to assets/vendor folder. (for you private vendor packages)

  • Append this to .gitignore to prevent publishing intermediate assets to your repository:
    resources/assets/build

Bugs

npm watch --production goes into and infinitie dependency loop. so DON'T RUN IT!

1.0.8

8 years ago

1.0.7

8 years ago

1.0.6

8 years ago

1.0.5

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago