mirror of
https://github.com/lovell/sharp.git
synced 2025-07-09 10:30:15 +02:00
Require specific semver functions, aids tree-shaking
This commit is contained in:
parent
f8a76372ad
commit
84d4e3cf8f
@ -7,7 +7,8 @@ const stream = require('stream');
|
|||||||
const zlib = require('zlib');
|
const zlib = require('zlib');
|
||||||
|
|
||||||
const detectLibc = require('detect-libc');
|
const detectLibc = require('detect-libc');
|
||||||
const semver = require('semver');
|
const semverLessThan = require('semver/functions/lt');
|
||||||
|
const semverSatisfies = require('semver/functions/satisfies');
|
||||||
const simpleGet = require('simple-get');
|
const simpleGet = require('simple-get');
|
||||||
const tarFs = require('tar-fs');
|
const tarFs = require('tar-fs');
|
||||||
|
|
||||||
@ -96,18 +97,18 @@ try {
|
|||||||
throw new Error(`BSD/SunOS systems require manual installation of libvips >= ${minimumLibvipsVersion}`);
|
throw new Error(`BSD/SunOS systems require manual installation of libvips >= ${minimumLibvipsVersion}`);
|
||||||
}
|
}
|
||||||
if (detectLibc.family === detectLibc.GLIBC && detectLibc.version) {
|
if (detectLibc.family === detectLibc.GLIBC && detectLibc.version) {
|
||||||
if (semver.lt(`${detectLibc.version}.0`, `${minimumGlibcVersionByArch[arch]}.0`)) {
|
if (semverLessThan(`${detectLibc.version}.0`, `${minimumGlibcVersionByArch[arch]}.0`)) {
|
||||||
throw new Error(`Use with glibc ${detectLibc.version} requires manual installation of libvips >= ${minimumLibvipsVersion}`);
|
throw new Error(`Use with glibc ${detectLibc.version} requires manual installation of libvips >= ${minimumLibvipsVersion}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (detectLibc.family === detectLibc.MUSL && detectLibc.version) {
|
if (detectLibc.family === detectLibc.MUSL && detectLibc.version) {
|
||||||
if (semver.lt(detectLibc.version, '1.1.24')) {
|
if (semverLessThan(detectLibc.version, '1.1.24')) {
|
||||||
throw new Error(`Use with musl ${detectLibc.version} requires manual installation of libvips >= ${minimumLibvipsVersion}`);
|
throw new Error(`Use with musl ${detectLibc.version} requires manual installation of libvips >= ${minimumLibvipsVersion}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const supportedNodeVersion = process.env.npm_package_engines_node || require('../package.json').engines.node;
|
const supportedNodeVersion = process.env.npm_package_engines_node || require('../package.json').engines.node;
|
||||||
if (!semver.satisfies(process.versions.node, supportedNodeVersion)) {
|
if (!semverSatisfies(process.versions.node, supportedNodeVersion)) {
|
||||||
throw new Error(`Expected Node.js version ${supportedNodeVersion} but found ${process.versions.node}`);
|
throw new Error(`Expected Node.js version ${supportedNodeVersion} but found ${process.versions.node}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,13 +4,15 @@ const fs = require('fs');
|
|||||||
const os = require('os');
|
const os = require('os');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const spawnSync = require('child_process').spawnSync;
|
const spawnSync = require('child_process').spawnSync;
|
||||||
const semver = require('semver');
|
const semverCoerce = require('semver/functions/coerce');
|
||||||
|
const semverGreaterThanOrEqualTo = require('semver/functions/gte');
|
||||||
|
|
||||||
const platform = require('./platform');
|
const platform = require('./platform');
|
||||||
|
|
||||||
const env = process.env;
|
const env = process.env;
|
||||||
const minimumLibvipsVersionLabelled = env.npm_package_config_libvips || /* istanbul ignore next */
|
const minimumLibvipsVersionLabelled = env.npm_package_config_libvips || /* istanbul ignore next */
|
||||||
require('../package.json').config.libvips;
|
require('../package.json').config.libvips;
|
||||||
const minimumLibvipsVersion = semver.coerce(minimumLibvipsVersionLabelled).version;
|
const minimumLibvipsVersion = semverCoerce(minimumLibvipsVersionLabelled).version;
|
||||||
|
|
||||||
const spawnSyncOptions = {
|
const spawnSyncOptions = {
|
||||||
encoding: 'utf8',
|
encoding: 'utf8',
|
||||||
@ -105,7 +107,7 @@ const useGlobalLibvips = function () {
|
|||||||
}
|
}
|
||||||
const globalVipsVersion = globalLibvipsVersion();
|
const globalVipsVersion = globalLibvipsVersion();
|
||||||
return !!globalVipsVersion && /* istanbul ignore next */
|
return !!globalVipsVersion && /* istanbul ignore next */
|
||||||
semver.gte(globalVipsVersion, minimumLibvipsVersion);
|
semverGreaterThanOrEqualTo(globalVipsVersion, minimumLibvipsVersion);
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user