check.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // Copyright 2013 Lovell Fuller and others.
  2. // SPDX-License-Identifier: Apache-2.0
  3. 'use strict';
  4. try {
  5. const { useGlobalLibvips, globalLibvipsVersion, log, spawnRebuild } = require('../lib/libvips');
  6. const buildFromSource = (msg) => {
  7. log(msg);
  8. log('Attempting to build from source via node-gyp');
  9. try {
  10. const addonApi = require('node-addon-api');
  11. log(`Found node-addon-api ${addonApi.version || ''}`);
  12. } catch (err) {
  13. log('Please add node-addon-api to your dependencies');
  14. return;
  15. }
  16. try {
  17. const gyp = require('node-gyp');
  18. log(`Found node-gyp ${gyp().version}`);
  19. } catch (err) {
  20. log('Please add node-gyp to your dependencies');
  21. return;
  22. }
  23. log('See https://sharp.pixelplumbing.com/install#building-from-source');
  24. const status = spawnRebuild();
  25. if (status !== 0) {
  26. process.exit(status);
  27. }
  28. };
  29. if (useGlobalLibvips(log)) {
  30. buildFromSource(`Detected globally-installed libvips v${globalLibvipsVersion()}`);
  31. } else if (process.env.npm_config_build_from_source) {
  32. buildFromSource('Detected --build-from-source flag');
  33. }
  34. } catch (err) {
  35. const summary = err.message.split(/\n/).slice(0, 1);
  36. console.log(`sharp: skipping install check: ${summary}`);
  37. }