MDL-59431 requirejs: better reporting if a JS file cannot be loaded
authorTim Hunt <T.J.Hunt@open.ac.uk>
Fri, 30 Jun 2017 16:00:18 +0000 (17:00 +0100)
committerTim Hunt <T.J.Hunt@open.ac.uk>
Fri, 30 Jun 2017 16:17:26 +0000 (17:17 +0100)
lib/requirejs.php

index 607cf93..b348ee4 100644 (file)
@@ -97,7 +97,12 @@ if ($rev > 0 and $rev < (time() + 60 * 60)) {
 
         $content = '';
         foreach ($jsfiles as $modulename => $jsfile) {
-            $js = file_get_contents($jsfile) . "\n";
+            $js = file_get_contents($jsfile);
+            if ($jsfile === false) {
+                error_log('Failed to load JavaScript file ' . $jsfile);
+                $js = '/* Failed to load JavaScript file ' . $jsfile . '. */';
+            }
+            $js .= "\n";
             // Inject the module name into the define.
             $replace = 'define(\'' . $modulename . '\', ';
             $search = 'define(';
@@ -134,7 +139,7 @@ foreach ($jsfiles as $modulename => $jsfile) {
     if (strpos($js, $search) === false) {
         // We can't call debugging because we only have minimal config loaded.
         header('HTTP/1.0 500 error');
-        die('JS file: ' . $shortfilename . ' does not contain a javascript module in AMD format. "define()" not found.');
+        die('JS file: ' . $shortfilename . ' cannot be loaded, or does not contain a javascript module in AMD format. "define()" not found.');
     }
 
     // Replace only the first occurrence.