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 = {