2.9.1 • Published 7 months ago

laravel-bundler v2.9.1

Weekly downloads
95
License
MIT
Repository
github
Last release
7 months ago

Asset Bundler for Laravel

downloads npm-version github-tag license install size tests

Modern and fast asset building tool for Laravel framework with better defaults.

Installation

:bulb: This package does not work with laravel-mix; you must remove laravel-mix before using this one

npm install --save-dev laravel-bundler@^2

Usage

Create a resources/js/app.js file like

// Example: Vue.js v2 with bootstrap
import Vue from 'vue';
// You can import styles like this
import 'bootstrap/dist/css/bootstrap.css'

import RegularComponent from './Regular.vue'

const LazyLoadedComponent = () => import('./HeavyComponent.vue');

new Vue({
    el: "#app",
    components: {
        RegularComponent,
        LazyLoadedComponent,
    }
});

Create a webpack.config.js file on your project root and remove webpack.mix.js if exists.

import webpack from 'webpack'
import {createConfig} from 'laravel-bundler';
import vue2Recipe from 'laravel-bundler/src/recipes/vue-2.js';

export default createConfig({
        entry: {
            app: './resources/js/app.js',
        },
        plugins: [
            //
        ],
        // Other webpack configs may go here
    },
    // Include vue v2 recipe
    // Dont forget to install required packages by this recipe
    vue2Recipe
);

Update your package.json file

{
    "type": "module",
    "scripts": {
        "dev": "webpack --define-process-env-node-env=development --progress",
        "watch": "webpack watch --define-process-env-node-env=development --progress",
        "hot": "webpack serve --define-process-env-node-env=development --progress --hot",
        "hot:https": "npm run hot -- --https",
        "prod": "webpack --define-process-env-node-env=production --progress"
    },
    "browserslist": [
        "> 2%",
        "not dead"
    ],
    "babel": {
        "presets": [
            [
                "@babel/preset-env",
                {
                    "bugfixes": true
                }
            ]
        ],
        "plugins": []
    }
}

Update your blade template

<!-- header -->
<link href="{{ mix('css/app.css', 'dist') }}" rel="stylesheet">

<!-- footer -->
<script src="{{ mix('js/manifest.js', 'dist') }}"></script>
<script src="{{ mix('js/vendor.js', 'dist') }}"></script>
<script src="{{ mix('js/app.js', 'dist') }}"></script>

Update your .gitignore file

/public/dist

Features

  • Webpack 5 and Babel 7 with @babel/preset-env
  • Use esbuild to minify CSS and JS :rocket:
  • Vue.js v2 support - Recipe
  • Vue.js v3 support - Recipe
  • CSS and SASS|SCSS support
  • PostCSS loader pre-configured with autoprefixer
  • Font and image files handling
  • Full HMR support for Vue, even for CSS :fire:
  • Extract all css to a separate file (based on entry)
  • Accepts css/scss file as entry
  • Extract all vendor js to a separate file
  • Dynamic import (code splitting) support :mage_man:
  • Clean the output directory before emitting the assets
  • Generates a mix-manifest.json file which is compatible with Laravel's mix() helper
  • Load environment variables from .env file that are prefixed with MIX_ :wink:
  • Intelligent SourceMap based on mode
  • Can auto-reload web-browser when blade templates gets changed :wink:

Documentation

Not in the plan

These features are not in the plan but can be enabled on demand :man_shrugging:

License

MIT License

2.9.1

7 months ago

2.9.0

7 months ago

2.8.0

11 months ago

2.7.0

12 months ago

2.6.0

1 year ago

2.5.0

1 year ago

2.4.1

2 years ago

2.4.0

2 years ago

2.4.3

2 years ago

2.4.2

2 years ago

2.3.0

2 years ago

2.2.0

2 years ago

2.0.0

3 years ago

1.1.0

3 years ago

0.40.1

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago

2.1.0

3 years ago

0.40.0

3 years ago

0.38.2

3 years ago

0.38.1

3 years ago

0.38.0

3 years ago

0.39.0

3 years ago

0.37.1

3 years ago

0.36.0

3 years ago

0.37.0

3 years ago

0.35.2

3 years ago

0.35.1

3 years ago

0.34.1

4 years ago

0.34.0

4 years ago

0.33.4

4 years ago

0.33.3

4 years ago

0.35.0

4 years ago

0.33.2

4 years ago

0.33.1

4 years ago

0.33.0

4 years ago

0.32.1

4 years ago

0.32.0

4 years ago

0.31.3

4 years ago

0.31.2

4 years ago

0.31.1

4 years ago

0.31.0

4 years ago

0.30.0

4 years ago

0.29.4

4 years ago

0.29.3

4 years ago

0.29.2

4 years ago

0.29.1

4 years ago

0.29.0

4 years ago

0.28.0

4 years ago

0.27.0

4 years ago

0.26.0

4 years ago

0.25.1

4 years ago

0.25.0

4 years ago

0.24.0

4 years ago

0.23.0

4 years ago

0.22.1

4 years ago

0.22.0

4 years ago

0.21.10

4 years ago

0.21.9

5 years ago

0.21.8

5 years ago

0.21.7

5 years ago

0.21.6

5 years ago

0.21.5

5 years ago

0.21.4

5 years ago

0.21.3

5 years ago

0.21.2

5 years ago

0.21.1

5 years ago

0.21.0

5 years ago

0.20.2

5 years ago

0.20.1

5 years ago

0.20.0

5 years ago

0.19.0

5 years ago

0.18.0

5 years ago

0.17.0

5 years ago

0.16.0

5 years ago

0.15.1

5 years ago

0.15.0

5 years ago

0.14.3

5 years ago

0.14.2

5 years ago

0.14.1

5 years ago

0.14.0

5 years ago

0.13.1

5 years ago

0.13.0

5 years ago

0.12.0

6 years ago

0.11.0

6 years ago

0.10.1

6 years ago

0.10.0

6 years ago

0.9.0

6 years ago

0.8.0

6 years ago

0.7.5

6 years ago

0.7.4

6 years ago

0.7.3

6 years ago

0.7.2

6 years ago

0.7.1

6 years ago

0.7.0

6 years ago

0.6.1

7 years ago

0.6.0

7 years ago

0.5.1

7 years ago

0.5.0

7 years ago

0.4.1

7 years ago

0.4.0

7 years ago

0.3.4

7 years ago

0.3.3

7 years ago

0.3.2

7 years ago

0.3.1

7 years ago

0.3.0

7 years ago

0.2.0

7 years ago

0.1.0

7 years ago