Skip to content
This repository has been archived by the owner on Dec 4, 2018. It is now read-only.

[DEPRECATED] Laravel Mix v2/3 plugin to auto extract vendor js

License

Notifications You must be signed in to change notification settings

ankurk91/laravel-mix-auto-extract

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laravel Mix Auto Extract Vendors Plugin

downloads npm-version github-tag license

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

📣 Notice: This feature has been added to Laravel Mix v4.0 now. 🎉

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

About

[DEPRECATED] Laravel Mix v2/3 plugin to auto extract vendor js

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published