Browse Source

Allow using import in sass files

This allows us to combine multiple sass files that we have to always
load together anyway.

Fixes #3389

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
tags/v12.0.0beta1
Roeland Jago Douma 7 years ago
parent
commit
57be594f1f
No account linked to committer's email address
1 changed files with 18 additions and 3 deletions
  1. 18
    3
      lib/private/Template/SCSSCacher.php

+ 18
- 3
lib/private/Template/SCSSCacher.php View File

@@ -103,10 +103,17 @@ class SCSSCacher {
private function isCached($fileNameCSS, $fileNameSCSS, ISimpleFolder $folder, $path) {
try{
$cachedFile = $folder->getFile($fileNameCSS);
if( $cachedFile->getMTime() > filemtime($path.'/'.$fileNameSCSS)
&& $cachedFile->getSize() > 0 ) {
return true;
if ($cachedFile->getSize() > 0) {
$depFile = $folder->getFile($fileNameCSS . '.deps');
$deps = json_decode($depFile->getContent(), true);

foreach ($deps as $file=>$mtime) {
if (!file_exists($file) || filemtime($file) > $mtime) {
return false;
}
}
}
return true;
} catch(NotFoundException $e) {
return false;
}
@@ -140,6 +147,13 @@ class SCSSCacher {
$cachedfile = $folder->newFile($fileNameCSS);
}

$depFileName = $fileNameCSS . '.deps';
try {
$depFile = $folder->getFile($depFileName);
} catch (NotFoundException $e) {
$depFile = $folder->newFile($depFileName);
}

// Compile
try {
$compiledScss = $scss->compile('@import "'.$fileNameSCSS.'";');
@@ -150,6 +164,7 @@ class SCSSCacher {

try {
$cachedfile->putContent($this->rebaseUrls($compiledScss, $webDir));
$depFile->putContent(json_encode($scss->getParsedFiles()));
$this->logger->debug($webDir.'/'.$fileNameSCSS.' compiled and successfully cached', ['app' => 'core']);
return true;
} catch(NotFoundException $e) {

Loading…
Cancel
Save