shakyshane / grunt-cache-breaker Goto Github PK
View Code? Open in Web Editor NEWSimple cache-breaker - appends a timestamp to an asset url
License: MIT License
Simple cache-breaker - appends a timestamp to an asset url
License: MIT License
Yeah, as tittle said. That would be awesome. :)
wondering if there is an option to replace the rel= with a string of one's choosing, via the options.
thanks
When i start to build my code it shows
jit-grunt: Plugin for the "cachebreaker" task not found.
If you have installed the plugin already, please setting the static mapping.
See https://github.com/shootaroo/jit-grunt#static-mappings
I'm trying to have a timestamp at the end of my file, in this format file.css?v=20151123120000
. My cachebreaker config looks like this:
cachebreaker: {
dev: {
options: {
match: [
'main.css',
],
replacement: function () {
return "?v=";
}
},
files: {
src: ['/index.html']
}
}
}
Am I doing something wrong. Any help is appreciated. Thanks in advance!
js/css cache-breaking totally rocks! it would be awesome to also have the possibility to cache-break image-tags as well!
img: {
asset_url : '**/*.{png,jpg,gif}',
file: 'index.php'
}
Using this plugin also appends the query parameter in type="text/css" resulting in
This does not allow the file to load in the browser.My configs are as below
module.exports = function(grunt){
//configuration
grunt.initConfig({
cachebreaker: {
dev: {
options: {
match: ['css/*'],
replacement: function (){
return new Date().getTime()
}
},
files: {
src: ['template/*']
}
}
}
})
//load the plugin
grunt.loadNpmTasks('grunt-cache-breaker');
//registering the task
grunt.registerTask('default',['cachebreaker']);
};
If we could specify our own complete regex for matching it would make it more powerful.
In my File I have a few instances of the asset_url, but the plugin is only changing the first one. Can this be fixed?
In a html page, I have a link index.html#/profile , when I run grunt this is not being replaced with index.html?rel=1kj08da#/profile
Can you please update the code even with that case.
Sorry, but it's not working for me. I guess it should make application.min.js with md5 hash in filename when I run grunt build? In my case everything is same like before I installed your plugin.
When a Key-Value-Mapping is passed as a parameter for match and "filename" mode is used, the replacement in the html files only works for the first run, when an exact match for the original filename was found.
gruntfile:
cachebreaker: {
dev: {
options: {
match: [
{
'script.min.js': '../js/script.min.js'
}
],
position: 'filename',
replacement: 'md5'
},
files: {
src: ['../templates/header.tpl','../templates/footer.tpl']
}
}
}
For the first run, this code fragment in tpl files:
[..]
<script type="text/javascript" src="{$JS}script.min.js"></script>
[..]
is correctly changed to this:
[..]
<script type="text/javascript" src="{$JS}script.min.de94ef7c57.js"></script>
[..]
But afterwards it is not updated anymore for subsequent runs.
(This {$JS} is used for the templating engine but removing it does not make any difference)
Hi, I would like to have ability to replace ?rel= param to something different, for example ?v= etc.
Is it possible? Or can you add that possibility?
It used to!
Latest changes have broken this very feature feature.
How can I leverage using a grunt variable for custom replacement. I am looking to add svn revision number to the query string, eg:
grunt.initConfig({
svn_info: {
app: '.'
},
cachebreaker: {
dev: {
options: {
match: ['ax-main.js', 'ax-main.min.js', 'ax.css'],
replacement: function (){
return '<%= svn_info.app.last_revision %>_' ;
}
},
files: {
src: [
'deploy/modules/includes/app/header/header.php',
'deploy/modules/includes/app/header/header_localization.php',
'deploy/modules/includes/app/header/header_loggedout.php',
'deploy/modules/includes/app/header/header_login.php'
]
}
}
},
});
I know i'm probably totally off here.. but this is what i'm trying to do:
cachebreaker: {
dev: {
options: {
match: ['vendors.js', 'app.js', 'directives.js' , 'services.js', 'controllers.js'],
replacement: 'md5',
src: {
path: [
'../scripts_final/vendors.js',
'../scripts_final/app.js',
'../scripts_final/directives.js',
'../scripts_final/services.js',
'../scripts_final/controllers.js',
]
}
},
files: {
src: ['../index.html']
}
}
What am I doing wrong?
Please add the requirement of lodash for version 2.0.0
npm install lodash --save
Maybe its not an issue but I cant setup cache breaker because I don't know where to put this configuration:
// Append a md5 hash to 'all.js' which is located in 'index.html'
cachebreaker: {
dev: {
options: {
match: ['all.js'],
replacement: 'md5',
src: {
path: 'app/all.js'
}
},
files: {
src: ['index.html']
}
}
}
I tried in gruntfile.js and have an error
NODE_ENV=production grunt build
/home/projects/gruntfile.js:140
cachebreaker: {
^^^^^^^^^^^^
Loading "gruntfile.js" tasks...ERROR
SyntaxError: Unexpected identifier
Warning: Task "build" not found. Use --force to continue.
Aborted due to warnings.
Foreign characters are getting convert when reading/writing. Would it help to have an option to set the encoding when reading/writing files like in grunt-cache-bust?
å -> Ã¥
ä -> ä
ö -> ö
options: {
encoding: 'utf8',
}
Current lodash version i devDependencies has a vulnerability: https://www.npmjs.com/advisories/782
Update to patched version of lodash. Or remove it...? I can't see it being used.
Take this config:
cachebreaker: {
dev: {
options: {
match: ['app/dist/built.*.js'],
position: 'overwrite'
},
files: {
src: ['app/index.html']
}
}
}
and in my index.html
i have:
<script src="dist/built.min.js"></script>
Running cache-breaker with this config will not make any modification to the index.html
or the built.min.js
file.
This happens cause cache-breaker is looking for the string app/dist/built.min.js
in the index.html
file, but it is just dist/built.min.js
.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.