2.6.0 • Published 1 month ago

laravel-bundler v2.6.0

Weekly downloads
95
License
MIT
Repository
github
Last release
1 month 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.6.0

1 month ago

2.5.0

2 months ago

2.4.1

10 months ago

2.4.0

11 months ago

2.4.3

9 months ago

2.4.2

10 months ago

2.3.0

1 year ago

2.2.0

1 year ago

2.0.0

1 year ago

1.1.0

1 year ago

0.40.1

2 years ago

1.0.1

1 year ago

1.0.0

1 year ago

2.1.0

1 year ago

0.40.0

2 years ago

0.38.2

2 years ago

0.38.1

2 years ago

0.38.0

2 years ago

0.39.0

2 years ago

0.37.1

2 years ago

0.36.0

2 years ago

0.37.0

2 years ago

0.35.2

2 years ago

0.35.1

2 years ago

0.34.1

2 years ago

0.34.0

2 years ago

0.33.4

2 years ago

0.33.3

2 years ago

0.35.0

2 years ago

0.33.2

2 years ago

0.33.1

2 years ago

0.33.0

2 years ago

0.32.1

3 years ago

0.32.0

3 years ago

0.31.3

3 years ago

0.31.2

3 years ago

0.31.1

3 years ago

0.31.0

3 years ago

0.30.0

3 years ago

0.29.4

3 years ago

0.29.3

3 years ago

0.29.2

3 years ago

0.29.1

3 years ago

0.29.0

3 years ago

0.28.0

3 years ago

0.27.0

3 years ago

0.26.0

3 years ago

0.25.1

3 years ago

0.25.0

3 years ago

0.24.0

3 years ago

0.23.0

3 years ago

0.22.1

3 years ago

0.22.0

3 years ago

0.21.10

3 years ago

0.21.9

3 years ago

0.21.8

4 years ago

0.21.7

4 years ago

0.21.6

4 years ago

0.21.5

4 years ago

0.21.4

4 years ago

0.21.3

4 years ago

0.21.2

4 years ago

0.21.1

4 years ago

0.21.0

4 years ago

0.20.2

4 years ago

0.20.1

4 years ago

0.20.0

4 years ago

0.19.0

4 years ago

0.18.0

4 years ago

0.17.0

4 years ago

0.16.0

4 years ago

0.15.1

4 years ago

0.15.0

4 years ago

0.14.3

4 years ago

0.14.2

4 years ago

0.14.1

4 years ago

0.14.0

4 years ago

0.13.1

4 years ago

0.13.0

4 years ago

0.12.0

5 years ago

0.11.0

5 years ago

0.10.1

5 years ago

0.10.0

5 years ago

0.9.0

5 years ago

0.8.0

5 years ago

0.7.5

5 years ago

0.7.4

5 years ago

0.7.3

5 years ago

0.7.2

5 years ago

0.7.1

5 years ago

0.7.0

5 years ago

0.6.1

5 years ago

0.6.0

5 years ago

0.5.1

5 years ago

0.5.0

5 years ago

0.4.1

5 years ago

0.4.0

5 years ago

0.3.4

5 years ago

0.3.3

5 years ago

0.3.2

5 years ago

0.3.1

5 years ago

0.3.0

5 years ago

0.2.0

5 years ago

0.1.0

5 years ago