PHPStorm doesn't upload CSS files when using file watcher for SCSS using Compass
PHPStorm doesn't automatically upload CSS files when using file watcher for SCSS using Compass. In order to upload them I have to deactivate PHPStorm window and activate it again. Then PHPStorm finds out that one of the CSS files were changed and uploads it. I'm sure that there is that one small checkbox to check to make this work. But which one?
Please sign in to leave a comment.
Hi there,
AFAIK files created by File Watchers are considered as external changes -- see if activating "Settings | Deployments | Options | Upload external changes" will do any better (should do).
You can just use "File | Synchronize" -- does the same (checks project files for changes).
As I said, when I disable PHPStorm window and activate it again PHPStorm finds out the change and uploads file. I'd like to avoid this. Synchronizing project works, but this is another key combination to do. I want PHPStorm to upload changes as it does for every other situation.
Bump... I agree with Frost Frost.
Has there been discovered a solution to this?
Please make sure to run SCSS compiler from within PHPStorm. See https://intellij-support.jetbrains.com/hc/en-us/community/posts/206333759-Automatic-upload-css-file-after-compile-from-scss-not-work
Please make sure you read posts before comment. PHPStorm does not recognize changes to files generated by itself using file watcher. Period. You have to switch window to something else and then switch back to PHPStorm. Then PHPStorm, which is great software no doubt :), eventually finds changes and upload them.
It's been more than two years now. We've checked and unchecked every single checkbox for sure by this time.
Again: file watcher by PHPStorm activated, external changes activated, changes are not discovered. Providing hint to activate file watcher within PHPStorm and to activate uploading external changes once more will not solve this bug. You basically linked the topic with the same problem with the same answer as already given here. You cannot just throw answers basing on statistics, if you don't have time or power to give a proper answer, don't do it.
Please show your file watcher settings. Please also state where target (compiled) files are created -- next to the source or some other folder.
IDE uses "Output paths to refresh" field to see what files need to be checked for changes after file watcher finished running. If that field does not point to correct location/names then yes ... manual "File | Synchronize" (or leaving and then re-gaining app focus) is required.
Screen 1:
Screen 2:
Screen 3:
Screen 4:
Generated CSS files are right in the exact folder as specified in output path.
>Generated CSS files are right in the exact folder as specified in output path.
AFAIK It should point to a file (files if there are more than one generated) and not a folder. You can use Macro to have it dynamic (based on file name)
https://www.jetbrains.com/help/phpstorm/2017.1/new-watcher-dialog.html#d91114e132
Actual ticket that implemented this: https://youtrack.jetbrains.com/issue/WI-16410
Pointing to the file instead of folder does not change anything. Just tested.
Hey Frost Frost.
Your thread helped me sorting out my problem. I've solved my problem now - and you can see the answer here. Maybe that will illude something that can be a help to your problem.
Zeth, heh, I overcome this problem by fast double alt+tab ;) You solution is great until, as you spotted this by yourself, compiling is longer then waiting. I have several small files and few bigger. If I set the limit to meet up with bigger ones then I will wait unnecessary time when editing smaller files.
Anyway, I'm pretty sure that this bug is related to many other things and of course, considering the time it exists, is not so trivial to solve. I was just frustrated by receiving the same answer, like I missed something obvious for sure.
@Frost
Accordingly to the devs (aforementioned https://youtrack.jetbrains.com/issue/WI-16410 ticket) pointing "Output paths to refresh" field to a generated file should do the job.
Since for some reason it does not work for you -- I may suggest to use "Submit a request" link on the top of this page (.. or maybe even submit a new ticket to the Issue Tracker directly) with your details (how you have configured it -- deployment and file watcher settings; idea.log file etc) so they can look into it.
Hey there,
I just found the reason why the exact same problem occured in my configuration. I know my solution is rather late but also my problem was, so deal with it :)
I ended up totally frustrated about this problem on linux while observing and uploading my files using fswatch and came across one simple option in the Settings which even PhpStorm developers obviously forgot about:
Unter "Build, Execution, Deployment" > "Deployment" > "Options" I had my reasons to set the option "Upload changed files automatically on the default server" to "On explicit save action". But that meant that only (ONLY!) files you opened and saved were uploaded, which I was totally fine with until today (oddly, the target file was uploaded after Alt+Tabbing back and forth as yours was).
After setting this option to "Always" (which is the default value anyways) all modified CSS files went up to the server INSTANTLY.
Maybe changing this setting helps anyone out there.
Adrian, problem still exists. Both "Always" and "On explicit save action" don't work for me. This means, problem exists since 3 and half years :D Of course I use different approach now, but this issue is... the issue. Like old unsolved case for a detective.
Sorry to hear that!
I tested my solution on both Mac and Linux at it worked out well (for me). At least I was able to provide a solution for these symptoms to at least one person (that's me). Why not share that knowledge. ;)
Best regards
Adrian
Following the ideas here, I had to do two things to get generated css files from watched scss files to upload automatically:
1. Set "Output paths to refresh" to point to the generated css file
2. In tools->deployment->options, uncheck "skip external changes".
It's worth noting that I was running WebStorm but I assume the fix for PHPStorm is similar.
Another much simpler solution is to set the File Watchers scope for SCSS files to "All Changed Files."
This is what my File Watcher setup looks like:
It compiles the .scss file, copies the minified .css into another folder, and then automatically uploads both files to the server if you have "Auto upload" enabled.
(You might note that I'm not using the SCSS compiler but the PHP-based PSCSS, which is about 70% faster and can be installed via `composer global require scssphp/scssphp`).