diff --git a/packages/less/src/less-node/environment.js b/packages/less/src/less-node/environment.js
index a9b790c9b..630a4c2d0 100644
--- a/packages/less/src/less-node/environment.js
+++ b/packages/less/src/less-node/environment.js
@@ -1,3 +1,11 @@
+class SourceMapGeneratorFallback {
+    addMapping(){}
+    setSourceContent(){}
+    toJSON(){
+        return null;
+    }
+};
+
 export default {
     encodeBase64: function encodeBase64(str) {
         // Avoid Buffer constructor on newer versions of Node.js.
@@ -5,12 +13,15 @@ export default {
         return buffer.toString('base64');
     },
     mimeLookup: function (filename) {
-        return require('mime').lookup(filename);
+        const mimeModule = require('mime');
+        return mimeModule ? mimeModule.lookup(filename) : "application/octet-stream";
     },
     charsetLookup: function (mime) {
-        return require('mime').charsets.lookup(mime);
+        const mimeModule = require('mime');
+        return mimeModule ? mimeModule.charsets.lookup(mime) : undefined;
     },
     getSourceMapGenerator: function getSourceMapGenerator() {
-        return require('source-map').SourceMapGenerator;
+        const sourceMapModule = require('source-map');
+        return sourceMapModule ? sourceMapModule.SourceMapGenerator : SourceMapGeneratorFallback;
     }
 };
diff --git a/packages/less/src/less-node/image-size.js b/packages/less/src/less-node/image-size.js
index 888a7a136..c53edd62e 100644
--- a/packages/less/src/less-node/image-size.js
+++ b/packages/less/src/less-node/image-size.js
@@ -31,7 +31,7 @@ export default environment => {
         }
 
         const sizeOf = require('image-size');
-        return sizeOf(fileSync.filename);
+        return sizeOf ? sizeOf(fileSync.filename) : {width: 0, height: 0};
     }
 
     const imageFunctions = {