/laravel-mix-version-apply

Laravel Mix plugin that replaces all the assets URLs with the corresponding hashed one generated by version()

Primary LanguageJavaScript

Laravel Mix Version Apply Plugin

Laravel Mix plugin that replaces all the assets URLs with the corresponding hashed one generated by version().

This plugin is mainly meant to be used in a CI/CD workflow.

Install

npm i laravel-mix-version-apply

Usage

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

mix 
    .setPublicPath('.')
    .sass('src/app.scss', 'dist/')
    .js('src/app.js', 'dist/');

if (mix.inProduction()) {
    mix
        .version()
        .versionApply(['index.html']);
}

API

.versionApply(fileInput)

With fileInput you can specificy the files in which you want to replace the assets URL. Supported formats are:

  • Array of strings
  • Glob string
  • Single string

Result

Before versionApply():

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Laravel Mix Version Apply Plugin</title>
    <link rel="stylesheet" href="/dist/app.css">
</head>
<body>
    <h1>Laravel Mix Version Apply Plugin</h1>
    <script src="/dist/app.js"></script>
</body>
</html>

After versionApply():

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Laravel Mix Version Apply Plugin</title>
    <link rel="stylesheet" href="/dist/app.css?id=082fcf4a96cc981bfab1">
</head>
<body>
    <h1>Laravel Mix Version Apply Plugin</h1>
    <script src="/dist/app.js?id=b5a3764d979b90fe8dd7"></script>
</body>
</html>