Simple plugin for adding timestamps to your resources.
Alternative for Laravel mix .version()
when changing the filename could break things due to caching.
This way the filename stays the same and timestamp changes after cache clears.
A config file is generated that returns return ["ts" => TIMESTAMP];
.
npm install --save-dev webpack-timestamp-plugin
yarn add --dev webpack-timestamp-plugin
const VersionTimestamp = require('webpack-timestamp-plugin');
module.exports = {
plugins: [
new VersionTimestamp()
]
}
const { mix } = require('laravel-mix');
const VersionTimestamp = require('webpack-timestamp-plugin');
mix.webpackConfig({
plugins: [
new VersionTimestamp()
]
});
mix.js('app.js')
.sass('app.scss');
This will create a file config/timestamp.php
at the end of the build process.
You should put this file into .gitignore
.
new VersionTimestamp({
path: 'timestamp.json',
content: '{ ts: #TS# }'
})
Where #TS#
is wildcard that will be replaced by the timestamp.
<link rel="stylesheet" href="/styles.css?ts={{ config('timestamp.ts', 0) }}" />
<script src="/scripts.js?ts={{ config('timestamp.ts', 0) }}" type="text/javascript"></script>
Assuming you haven't changed default directory, add $app->configure('timestamp');
to your boostrap/app.php
file.
If not using Laravel or Lumen you need an alternative to config()
function what will read the contents from generated file.