JSPM

laravel-elixir-cachebust

1.0.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • 0
  • Score
    100M100P100Q19309F
  • License MIT

A module for laravel-elixir that is meant to be used instead of .version()

Package Exports

  • laravel-elixir-cachebust

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (laravel-elixir-cachebust) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

laravel-elixir-cachebust

A simple laravel-elixir extension that works much like elixir's built in .version() method, except instead of renaming asset file names (and creating duplicates in /public/build/ and polluting your git repo), this module will append the cache-busting string onto the end of a file in the form of query string (i.e. /assets/css/styles?4c6649eb) inside of the the HTML document via use of a custom function.

Installation

While in your laravel root directory, execute the following code:

npm install laravel-elixir-cachebust --save

Usage

Your gulpfile.js needs two modifications in order to work properly.

  • You need to require('laravel-elixir-cachebust'); at the top of the file.
  • Instead of using .version() you can use .cachebust() in a similar way

Example of gulpfile.js

var elixir = require('laravel-elixir');
require('laravel-elixir-cachebust');

elixir(function(mix) {
    mix.sass("styles.scss");
    mix.scripts("app.js");

    mix.cachebust(["styles.css", "app.js"]);
});

Options

The second parameter of .cachebust() allows you to set these options:

  • method: The method used to generate a cache-buster string. Valid options are:
    • "hash" - using a MD4 or MD5 hash cipher. (this is the default option)
    • "uuid" - a randomly generated string.
    • "mtime" - The time that the file was last modified, according to the filesystem.
  • length: The maximum length that a cache-busting string should be. (default is 8)
  • baseDir: The path (relative to laravel's root dir) where the generated json file should be. (default is "public")
  • file: The filename of the json file. (default is "cachbuster.json")

Example of gulpfile.js - With options

var elixir = require('laravel-elixir');
require('laravel-elixir-cachebust');

elixir(function(mix) {
    mix.sass("styles.scss");
    mix.scripts("app.js");

    mix.cachebust(
        ["styles.css", "app.js"],
        {
            method: "uuid",
            length: 10,
            baseDir: "public"   // This is where our assets should be located,
                                // and is where we will generate our json file.
        }
    );
});