postcss-cli
postcss-cli copied to clipboard
--watch mode doesn't pick up new files
Running postcss -u stylelint -u postcss-reporter --no-map --watch -d ./src ./src/**/*.css in a directory structure with src/index.css:
- Changes to
src/index.cssare picked up fine - Adding
src/new.cssand then modifying it doesn't get picked up
Is this by design? Can it be fixed?
That’s a bug. We’re only watching for the change event; we should watch for the add event as well.
PR welcome!
So I'm looking into this use case in combination with PurgeCSS, and I get the feeling that plugins would also be helped by being able to add globs that need watching? For example if I add a new template file Browsersync will automatically reload the page, but since PostCSS does not detect the change I won't be able to use previously purged rules without restarting PostCSS.
Plugins can pass new files that need watching via the dependency message. postcss-import uses it, though I'm not sure what other plugins do.
Yep, for existing files that works. The use case I was referring to is a bit different, as the plugin might have it's own globs that should be watched for add events. As far as I understand plugins have no way of triggering a new build on their own?
Ah, no.
It would seem like the original issue of the --watch mode doesn't pick up new files is still relevant.
I would think that another issue/pr would be created for plugins being able to set their own dependencies and re-triggering builds, but that this issue could be closed by listing for the add/delete event in addition to change event. Is that correct?
I would much appreciate this issue being fixed. Thanks
@joeljeske It could be fixed by listening for the add event. Fixing this is non-trivial, I attempted it once and never completed it due to the complexity.
I am not paid for my work here, and am not personally affected by this bug, so this will most likely remain open until someone in the community steps up and does the work needed to fix this.
Awesome, thanks for the quick response. Hopefully I will get a chance to look at this sometime soon.
If you don't mind using another dependency, I find using watch to work just fine. e.g
npm install --save-dev watch
scripts: {
"css": "postcss style.css -o bin/style.css",
"css:watch" "watch 'npm run css'"
}
This should be fixed by #383
@1st8 No, it still doesn't pick up new files in the given directory; it just scans the directory for files that currently exist, and watches them.
Actually, sorry, I was wrong. It watches the directory correctly. However, this original issue still isn't fixed; we don't detect new files specified in the original glob passed on the CLI.