laravel-mix-merge-manifest

A quick Laravel Mix extension to support multi mix configration without overwriting the mix-manifest.json file.

MIT 9 个版本
安装
npm install laravel-mix-merge-manifest
yarn add laravel-mix-merge-manifest
pnpm add laravel-mix-merge-manifest
bun add laravel-mix-merge-manifest
README

Laravel Mix - Merge Manifest

This extension supports multi mix configration without overwriting the mix-manifest.json file. It merges new manifests into the existing one.

Usage

First, install the extension.

// Laravel Mix v5
npm install laravel-mix-merge-manifest@v1 --save-dev

// Laravel Mix v6
npm install laravel-mix-merge-manifest@v2 --save-dev

Then, require it within your webpack.mix.js file, like so:

let mix = require('laravel-mix');

require('laravel-mix-merge-manifest');

mix
    .js('resources/assets/js/app.js', 'public/js')
    .less('resources/assets/less/app.less', 'public/css')
    .mergeManifest();

Examples - Laravel Mix v6

Running Laravel Mix with different configurations

Laravel Mix only supports a global configuration. If you want to use diffent configurations - e.g. to provide a separate JS file for legacy browsers - you need to run mix multiple times with different configs.

npx mix && npx mix --mix-config=webpack.legacy.mix.js

Your default configuration in webpack.mix.js could look like this:

// ...
mix.js('resources/assets/scripts/main.js', 'scripts')
    .mergeManifest()
// ...

And your legacy configuration in webpack.legacy.mix.js would use .mergeManifest():

// ...
mix
    .babel({ ... }) // Different Babel Configuration
    .js('resources/assets/scripts/main.js', 'scripts/main.legacy.js')
    .mergeManifest()
// ...

Extracting multiple vendors

npx mix --mix-config=webpack.backoffice.mix.js && npx mix --mix-config=webpack.customers.mix.js

webpack.backoffice.mix.js

mix
    .js('resources/js/backoffice/backoffice.js', 'public/js/backoffice')
    .extract(['jquery', 'bootstrap', 'lodash', 'popper.js'])
    .mergeManifest()

webpack.customers.mix.js

mix
    .js('resources/js/customers/customers.js', 'public/js/customers')
    .extract(['vue'])
    .mergeManifest()

Source: How to Split Dependencies into Multiple Vendors using Laravel Mix

版本列表
2.1.0 2022-08-14
2.0.0-beta.2 2020-12-17
2.0.0-beta.1 2020-12-17
2.0.0 2021-01-28
1.0.1 2020-12-17
1.0.0 2020-12-17
0.1.2 2019-01-09
0.1.1 2018-04-05
0.1.0 2018-04-05