FriendsOfREDAXO / minify

Minifiziert und bündelt CSS/Sass, JavaScript, HTML
https://github.com/FriendsOfREDAXO/minify
MIT License
43 stars 5 forks source link

SCSS neu kompilieren, wenn sich importierte Dateien geändert haben #20

Closed alxndr-w closed 7 years ago

alxndr-w commented 7 years ago

Ich bräuchte die Möglichkeit, dass auch Änderungen in importierten SCSS-Dateien ermittelt werden.

Ideen:

phoebusryan commented 7 years ago

Hm, das sehe ich eigentlich eher im SCSS Compiler vom Core. Sonst wird das X mal programmiert, von jedem der den Compiler benötigt... Müsste mich da mal mit Gregor kurzschliessen.

ynamite commented 7 years ago

In meinem Addon klappt das bereits. Wenn du willst, kann ich dir den Code-Schnippsel gerne geben.

Ich finde nicht, dass das am Compiler liegen sollte, der Compiler compiled einfach die Datei(en) die du angibst, aber die Überwachung des Ordners bzw. der Dateien liegt imo am Addon.

phoebusryan commented 7 years ago

Das unterstreicht meine obige Aussage "Sonst wird das X mal programmiert" aber. Wie hast du es denn gelöst?

ynamite commented 7 years ago

Versteh nicht was du meinst. Du musst das doch nur einmal programmieren? Oder meinst du jeder, der den Rex Compiler verwendet, muss das neu dazuprogrammieren? Kommt natürlich auf den Verwendungszweck an. Evtl. hast du recht, wenn ich weiter überlege ...

So hab ich's gelöst (ist jetzt direkt aus der Klasse kopiert, aber dürfte Sinn machen, sonst fragen):

$cssFileMTime = @filemtime($cssFileWithPath);
$sourceFileMTime = 0;

$path = pathinfo($sourceFileWithPath);

$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path['dirname']), RecursiveIteratorIterator::CHILD_FIRST);
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isFile()) {
        if ($fileinfo->getMTime() > $sourceFileMTime) {
            $sourceFileMTime = $fileinfo->getMTime();
        }
    }
}            

if ($cssFileMTime == false || $sourceFileMTime > $cssFileMTime) {
      // compile scss
      self::compileCSS($sourceFileWithPath, $cssFileWithPath, $sourceFileType, $vars);
}
phoebusryan commented 7 years ago

Ja ich meinte, dass es jeder selber programmieren muss. Es gibt bereits zwei minify-Addons und auch einige die den Compiler einfach so nutzen. Überall derselbe Code. Viel schöner wäre eine Lösung im be_style Addon.. da wo kompiliert wird.

olien commented 7 years ago

Es gibt bereits zwei minify-Addons

Also wenn du hier auch das Plugin von out5 meinst: Das wird ja (hoffentlich bald) sterben sobald es den xOutPutFilter gibt...

phoebusryan commented 7 years ago

Meinte ich nicht. ich meinte mein minify und massif_minify von @ynamite

olien commented 7 years ago

ok. hätte mich auch gewundert. das Plugin ist ja kaum der rede wert :-)

alxndr-w commented 7 years ago

Zum Topic: Wenn der Debug-Modus aktiv ist, werden die Dateien scheinbar fortlaufend neu generiert und damit auch importierte SCSS-Dateien berücksichtigt.

eaCe commented 7 years ago

Import wird bei mir nur in die CSS geschrieben, da ändert der Debugmode leider auch nichts :(

Das sieht dann so aus: @import "compass/css3";@import "bootstrap";@import "mixins";@import "base";@import "styles";

Mach ich was falsch oder funktioniert das einfach nicht?