diff --git a/lib/constructor.js b/lib/constructor.js index 463da8de..bcdf21e5 100644 --- a/lib/constructor.js +++ b/lib/constructor.js @@ -4,43 +4,11 @@ const path = require('path'); const util = require('util'); const stream = require('stream'); const events = require('events'); -const semver = require('semver'); const is = require('./is'); -const platform = require('./platform'); + +require('./libvips').hasVendoredLibvips(); const sharp = require('../build/Release/sharp.node'); -// Vendor platform -(function () { - let vendorPlatformId; - try { - vendorPlatformId = require('../vendor/platform.json'); - } catch (err) { - return; - } - const currentPlatformId = platform(); - /* istanbul ignore if */ - if (currentPlatformId !== vendorPlatformId) { - throw new Error(`'${vendorPlatformId}' binaries cannot be used on the '${currentPlatformId}' platform. Please remove the 'node_modules/sharp/vendor' directory and run 'npm rebuild'.`); - } -})(); - -// Versioning -let versions = { - vips: sharp.libvipsVersion() -}; -(function () { - // Does libvips meet minimum requirement? - const libvipsVersionMin = require('../package.json').config.libvips; - /* istanbul ignore if */ - if (semver.lt(versions.vips, libvipsVersionMin)) { - throw new Error('Found libvips ' + versions.vips + ' but require at least ' + libvipsVersionMin); - } - // Include versions of dependencies, if present - try { - versions = require('../vendor/versions.json'); - } catch (err) {} -})(); - // Use NODE_DEBUG=sharp to enable libvips warnings const debuglog = util.debuglog('sharp'); @@ -251,7 +219,12 @@ Sharp.format = sharp.format(); * @example * console.log(sharp.versions); */ -Sharp.versions = versions; +Sharp.versions = { + vips: sharp.libvipsVersion() +}; +try { + Sharp.versions = require('../vendor/versions.json'); +} catch (err) {} /** * Export constructor.