mirror of
https://github.com/lovell/sharp.git
synced 2025-07-09 10:30:15 +02:00
Package managers cannot handle nested optionalDependencies
This commit is contained in:
parent
68ac12292c
commit
51e56f994c
18
lib/sharp.js
18
lib/sharp.js
@ -9,6 +9,7 @@ const { familySync, versionSync } = require('detect-libc');
|
|||||||
|
|
||||||
const { runtimePlatformArch, prebuiltPlatforms, minimumLibvipsVersion } = require('./libvips');
|
const { runtimePlatformArch, prebuiltPlatforms, minimumLibvipsVersion } = require('./libvips');
|
||||||
const runtimePlatform = runtimePlatformArch();
|
const runtimePlatform = runtimePlatformArch();
|
||||||
|
const [isLinux, isMacOs, isWindows] = ['linux', 'darwin', 'win32'].map(os => runtimePlatform.startsWith(os));
|
||||||
|
|
||||||
/* istanbul ignore next */
|
/* istanbul ignore next */
|
||||||
try {
|
try {
|
||||||
@ -29,11 +30,15 @@ try {
|
|||||||
help.push('Possible solutions:');
|
help.push('Possible solutions:');
|
||||||
// Common error messages
|
// Common error messages
|
||||||
if (prebuiltPlatforms.includes(runtimePlatform)) {
|
if (prebuiltPlatforms.includes(runtimePlatform)) {
|
||||||
help.push(`- Add an explicit dependency for the runtime platform: "npm install --force @sharpen/sharp-${runtimePlatform}"`);
|
help.push('- Add explicit dependencies for the runtime platform:');
|
||||||
|
help.push(` npm install --force @sharpen/sharp-${runtimePlatform}`);
|
||||||
|
if (!isWindows) {
|
||||||
|
help.push(` npm install --force @sharpen/sharp-libvips-${runtimePlatform}`);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
help.push(`- The ${runtimePlatform} platform requires manual installation of libvips >= ${minimumLibvipsVersion}`);
|
help.push(`- The ${runtimePlatform} platform requires manual installation of libvips >= ${minimumLibvipsVersion}`);
|
||||||
}
|
}
|
||||||
if (runtimePlatform.startsWith('linux') && /symbol not found/i.test(errPackage)) {
|
if (isLinux && /symbol not found/i.test(errPackage)) {
|
||||||
try {
|
try {
|
||||||
const { engines } = require(`@sharpen/sharp-libvips-${runtimePlatform}/package`);
|
const { engines } = require(`@sharpen/sharp-libvips-${runtimePlatform}/package`);
|
||||||
const libcFound = `${familySync()} ${versionSync()}`;
|
const libcFound = `${familySync()} ${versionSync()}`;
|
||||||
@ -41,16 +46,17 @@ try {
|
|||||||
help.push(`- Update your OS: found ${libcFound}, requires ${libcRequires}`);
|
help.push(`- Update your OS: found ${libcFound}, requires ${libcRequires}`);
|
||||||
} catch (errEngines) {}
|
} catch (errEngines) {}
|
||||||
}
|
}
|
||||||
if (runtimePlatform.startsWith('darwin') && /Incompatible library version/.test(errLocal.message)) {
|
if (isMacOs && /Incompatible library version/.test(errLocal.message)) {
|
||||||
help.push('- Update Homebrew: "brew update && brew upgrade vips"');
|
help.push('- Update Homebrew:');
|
||||||
|
help.push(' brew update && brew upgrade vips');
|
||||||
}
|
}
|
||||||
if (errPackage.code === 'ERR_DLOPEN_DISABLED') {
|
if (errPackage.code === 'ERR_DLOPEN_DISABLED') {
|
||||||
help.push('- Run Node.js without using the --no-addons flag');
|
help.push('- Run Node.js without using the --no-addons flag');
|
||||||
}
|
}
|
||||||
// Link to installation docs
|
// Link to installation docs
|
||||||
if (runtimePlatform.startsWith('linux') && /Module did not self-register/.test(errLocal.message + errPackage.message)) {
|
if (isLinux && /Module did not self-register/.test(errLocal.message + errPackage.message)) {
|
||||||
help.push('- Using worker threads on Linux? See https://sharp.pixelplumbing.com/install#worker-threads');
|
help.push('- Using worker threads on Linux? See https://sharp.pixelplumbing.com/install#worker-threads');
|
||||||
} else if (runtimePlatform.startsWith('win32') && /The specified procedure could not be found/.test(errPackage.message)) {
|
} else if (isWindows && /The specified procedure could not be found/.test(errPackage.message)) {
|
||||||
help.push('- Using the canvas package on Windows? See https://sharp.pixelplumbing.com/install#canvas-and-windows');
|
help.push('- Using the canvas package on Windows? See https://sharp.pixelplumbing.com/install#canvas-and-windows');
|
||||||
} else {
|
} else {
|
||||||
help.push('- Consult the installation documentation: https://sharp.pixelplumbing.com/install');
|
help.push('- Consult the installation documentation: https://sharp.pixelplumbing.com/install');
|
||||||
|
@ -13,9 +13,6 @@
|
|||||||
"url": "https://opencollective.com/libvips"
|
"url": "https://opencollective.com/libvips"
|
||||||
},
|
},
|
||||||
"preferUnplugged": true,
|
"preferUnplugged": true,
|
||||||
"optionalDependencies": {
|
|
||||||
"@sharpen/sharp-libvips-darwin-arm64": "0.0.1-alpha.1"
|
|
||||||
},
|
|
||||||
"files": [
|
"files": [
|
||||||
"lib"
|
"lib"
|
||||||
],
|
],
|
||||||
|
@ -13,9 +13,6 @@
|
|||||||
"url": "https://opencollective.com/libvips"
|
"url": "https://opencollective.com/libvips"
|
||||||
},
|
},
|
||||||
"preferUnplugged": true,
|
"preferUnplugged": true,
|
||||||
"optionalDependencies": {
|
|
||||||
"@sharpen/sharp-libvips-darwin-x64": "0.0.1-alpha.1"
|
|
||||||
},
|
|
||||||
"files": [
|
"files": [
|
||||||
"lib"
|
"lib"
|
||||||
],
|
],
|
||||||
|
@ -13,9 +13,6 @@
|
|||||||
"url": "https://opencollective.com/libvips"
|
"url": "https://opencollective.com/libvips"
|
||||||
},
|
},
|
||||||
"preferUnplugged": true,
|
"preferUnplugged": true,
|
||||||
"optionalDependencies": {
|
|
||||||
"@sharpen/sharp-libvips-linux-arm": "0.0.1-alpha.1"
|
|
||||||
},
|
|
||||||
"files": [
|
"files": [
|
||||||
"lib"
|
"lib"
|
||||||
],
|
],
|
||||||
|
@ -13,9 +13,6 @@
|
|||||||
"url": "https://opencollective.com/libvips"
|
"url": "https://opencollective.com/libvips"
|
||||||
},
|
},
|
||||||
"preferUnplugged": true,
|
"preferUnplugged": true,
|
||||||
"optionalDependencies": {
|
|
||||||
"@sharpen/sharp-libvips-linux-arm64": "0.0.1-alpha.1"
|
|
||||||
},
|
|
||||||
"files": [
|
"files": [
|
||||||
"lib"
|
"lib"
|
||||||
],
|
],
|
||||||
|
@ -13,9 +13,6 @@
|
|||||||
"url": "https://opencollective.com/libvips"
|
"url": "https://opencollective.com/libvips"
|
||||||
},
|
},
|
||||||
"preferUnplugged": true,
|
"preferUnplugged": true,
|
||||||
"optionalDependencies": {
|
|
||||||
"@sharpen/sharp-libvips-linux-x64": "0.0.1-alpha.1"
|
|
||||||
},
|
|
||||||
"files": [
|
"files": [
|
||||||
"lib"
|
"lib"
|
||||||
],
|
],
|
||||||
|
@ -13,9 +13,6 @@
|
|||||||
"url": "https://opencollective.com/libvips"
|
"url": "https://opencollective.com/libvips"
|
||||||
},
|
},
|
||||||
"preferUnplugged": true,
|
"preferUnplugged": true,
|
||||||
"optionalDependencies": {
|
|
||||||
"@sharpen/sharp-libvips-linuxmusl-arm64": "0.0.1-alpha.1"
|
|
||||||
},
|
|
||||||
"files": [
|
"files": [
|
||||||
"lib"
|
"lib"
|
||||||
],
|
],
|
||||||
|
@ -13,9 +13,6 @@
|
|||||||
"url": "https://opencollective.com/libvips"
|
"url": "https://opencollective.com/libvips"
|
||||||
},
|
},
|
||||||
"preferUnplugged": true,
|
"preferUnplugged": true,
|
||||||
"optionalDependencies": {
|
|
||||||
"@sharpen/sharp-libvips-linuxmusl-x64": "0.0.1-alpha.1"
|
|
||||||
},
|
|
||||||
"files": [
|
"files": [
|
||||||
"lib"
|
"lib"
|
||||||
],
|
],
|
||||||
|
Loading…
x
Reference in New Issue
Block a user