Skip file write if file content isn't changed
Closed this issue · 2 comments
If the input is the same as the output CSS and the --replace
flag is passed, the file is always overridden. Can we somehow prevent this from happening?
The issue I have now is that I have another watcher on these files which detect file changes even if the content is not changed.
Lines 222 to 227 in 42fc85e
We could wrap these lines with a simple check to prevent the file write from happening:
if (result.css !== css.toString('utf8')) {
tasks.push(fs.outputFile(options.to, result.css))
if (result.map) {
const mapfile = getMapfile(options)
tasks.push(fs.outputFile(mapfile, result.map))
}
}
Not sure if we can better add a new option or do this check by default, what do you think?
Don't see a good reason not to do this by default; PR welcome.
@MartijnCuppens, I've opened #417 which solves this in a more general way. If I'm not mistaken, what you were asking for is:
if the input is the same as the output then don't save the file
What I built is:
if the output is the same as what's currently in the output then don't save the file.
I think what I have in #417 satisfies what you're looking for and solves a significant annoyance for me at the same time :)