laravel-mix-auto-extract

    1.0.1 • Public • Published

    Laravel Mix Auto Extract Vendors Plugin

    downloads npm-version github-tag license

    Laravel Mix plugin to auto extract 3rd party dependencies as vendor.js.

    What was the problem?

    • Laravel Mix already has a extract() method which accepts an array of dependencies that you want to extract as vendor.js
    • Whenever you install a new package, you also need to update this list to make it work.
    • Read more on this issue

    How does this plugin solve above issue?

    • This plugin will auto extract all js dependencies coming from node_modules to vendor.js file.
    • You just need to reference them in your code somewhere. For example:
    // app.js
    import Vue from 'vue';
    import axios from 'axios';
    • Now vue and axios will be auto extracted to vendor.js file

    Requirements

    Installation

    # npm 
    npm install laravel-mix-auto-extract --save
     
    # yarn 
    yarn add laravel-mix-auto-extract

    Usage

    Update your webpack.mix.js

    const mix = require('laravel-mix');
    // Require this package
    require('laravel-mix-auto-extract');
    // Your code may go here
    // mix.js('./resources/assets/js/app.js', './public/js/app.js')
    // mix.version()
    // Call this method at last
    mix.autoExtract();

    Then update your blade template

    <script src="{{ mix('js/manifest.js') }}"></script>
    <script src="{{ mix('js/vendor.js') }}"></script>
    <script src="{{ mix('js/app.js') }}"></script>

    Remove any reference to extract() method in webpack.mix.js

    Configuration Options

    Here are the default options, all of them are optional.

    mix.autoExtract({
      vendorPath: 'js/vendor', // Don't suffix paths with `.js`
      manifestPath: 'js/manifest',
      excludeRegExp: /^.*\.(css|scss|sass|less|styl)$/,
      generateManifest: true,
    });

    Paths are relative to the default output directory, usually ./public.

    ⚠️ Caution

    Don't use autoExtract() method along with extract() method.

    Changelog

    Please see CHANGELOG for more information what has changed recently.

    License

    MIT License

    Install

    npm i laravel-mix-auto-extract

    DownloadsWeekly Downloads

    533

    Version

    1.0.1

    License

    MIT

    Unpacked Size

    6.35 kB

    Total Files

    6

    Last publish

    Collaborators

    • ankurk91