0.3.9-5 • Published 8 years ago

laravel-elixir-webpack-advanced v0.3.9-5

Weekly downloads
7
License
MIT
Repository
github
Last release
8 years ago

laravel-elixir-webpack-advanced

Simple extension to laravel elixir to build javascript bundle with webpack.

Install

npm install --save-dev laravel-elixir-webpack-advanced

Features

  • ES6-loader with Babel - source maps - multiple bundles - shared modules
  • Bower dependency resolver - you can add any bower package to your application like you did with npm - images will be resolved automatically and placed in (plublicPath / js.outputFolder / <-name of bower package->) - css (with correct assets path) will be extracted to plublicPath / js.outputFolder / <-name of main entry point->.css
  • HTML loader - you can require any html template in your js-application
  • Stylus and Sass|Scss loaders
  • Native watcher - if you start gulp watch - webpack task will started in watch mode, so any further changes of application files would not restart webpack task

Usage

Example Gulpfile:

var elixir = require("laravel-elixir"),
	config = elixir.config;

// Here you can override default elixir configuration
// config.assetsPath = 'path/to/assets/dir';
// ...

require("laravel-elixir-webpack-advanced");

elixir(function(mix) {
    mix.webpack("app.js");
});

First argument is the entry points of your application (default directory is resources/assets/js). In second argument you could pass webpack options. In production mode, bundle will be compressed. Third argument - object for webpack.ProvidePlugin.

Advanced example

/**
* If you wish to add some vendor libs to your project - you can redefine `entry` option 
* in webpack config: `entry: { vendor: ['jquery', 'vue', ...] }`
* This list of libraries will be bundled into `vendor.js`
*/

elixir(function(mix) {
    mix.webpack(
    	/**
    	* You can simply write string: 'app' or 'app.js' => output: main.js
    	* or object: { bundle: 'app.js' } ...
    	*/
        { bundle: 'app.js' }, // Output will be: bundle.js
        {
        	entry: {
        		// before start gulp task - you should install jquery (or other libs) by npm or bower
        		vendor: ['jquery'] 
        	},
	        output: {
	        	// By default: `/${config.js.outputFolder}/` - (/js/)
            		publicPath: `/assets/${config.js.outputFolder}/` // Browser output path: /assets/js/
            	}
        }, 
        /** 
        * Global variables for vendor libs
        * No need to require jquery in all your modules
        */
        {
            $: 'jquery',
            jQuery: 'jquery',
            'window.jQuery': 'jquery'
        }
    );
});

Things to do:

  • Implement HMR
  • Isolate inner configuration from mutation

License

MIT (http://www.opensource.org/licenses/mit-license.php)

0.3.9-5

8 years ago

0.3.9-4

8 years ago

0.3.9-3

8 years ago

0.3.9-2

8 years ago

0.3.9-1

8 years ago

0.3.9

8 years ago

0.3.8

8 years ago

0.3.7

8 years ago

0.3.6

8 years ago

0.3.5

8 years ago

0.3.4

8 years ago

0.3.3

8 years ago

0.3.2

8 years ago

0.3.1

8 years ago

0.3.0

8 years ago

0.2.8

8 years ago

0.2.7

8 years ago

0.2.6

8 years ago

0.2.5

8 years ago

0.2.4

8 years ago

0.2.3

8 years ago

0.2.2

8 years ago

0.2.1

8 years ago

0.2.0

8 years ago

0.1.5

8 years ago

0.1.4

8 years ago

0.1.3

8 years ago

0.1.2

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago