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?

16 comments
Comment actions Permalink

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).

In order to upload them I have to deactivate PHPStorm window and activate it again.

You can just use "File | Synchronize" -- does the same (checks project files for changes).

1
Comment actions Permalink

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.

0
Comment actions Permalink

Bump... I agree with Frost Frost. 

Has there been discovered a solution to this? 

0
Comment actions Permalink

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.

2
Comment actions Permalink

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.

1
Comment actions Permalink

Screen 1:

Screen 2:

Screen 3:

Screen 4:
Generated CSS files are right in the exact folder as specified in output path.


1
Comment actions Permalink

>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

2
Comment actions Permalink

Pointing to the file instead of folder does not change anything. Just tested.

1
Comment actions Permalink

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.

1
Comment actions Permalink

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.

1
Comment actions Permalink

@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.

1
Comment actions Permalink

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.

0
Comment actions Permalink

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.

0
Comment actions Permalink

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

1
Comment actions Permalink

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.

0

Please sign in to leave a comment.