laravel-mix-bundle
v2.0.0
Published
Zero configuration asset bundling
Downloads
284
Maintainers
Readme
Laravel Mix Bundle
This extension provides zero configuration Webpack asset bundling support to your Mix (v2.1 and up) builds.
This extension will:
- Install packages mentionned in package.json as 'bundledDependencies'
- Generate in your public folder a unique js (+ manifest.js by webpack) and a unique css file containing all js & css referenced from the specified entry source file, recursively:
- Local project ressources
- External, npm managed ressources
- Copy in your public folder all referenced assets (fonts, images) from the specified entry source file, recursively:
- Local project ressources
- External, npm managed ressources
All folders are taken from standard mix config.
In production mode, js and css files will be minified.
Usage
First, install the extension.
$ npm install laravel-mix-bundle --save-dev
Then, require it within your webpack.mix.js
file, like so:
let mix = require('laravel-mix');
require('laravel-mix-bundle');
mix.setPublicPath('public')
.bundle({
sourceFile : "resources/assets/index.js",
outputName : "my-app"
});
(If outputName is empty, takes name from current package.json)
And you're done! Compile everything down with npm run dev
.
Bundled files are generated in temporary .build folder, then published in css-js-fonts-images folders (respectively), in dist folder.
Npm packages
In your package.json file, you can now add following references:
"style": "public/css/my-app.css",
"module": "public/js/my-app",
"unpkg": "public/js/my-app.js",
(You can change 'public' folder by 'dist' folder for module bundling)
Blade
In your blade template, you can now include generated files:
- Unique css file :
<link rel="stylesheet" href="{{ asset('css/my-app.css') }}">
- Unique js files & manifest :
<script src="{{ asset('js/manifest.js') }}"></script>
<script src="{{ asset('js/my-app.js') }}"></script>