Automattic / Automattic/node-canvas
canvas fails to run on Mac after npm install
- Dominant language
- JavaScript
- Stars
- 10.7k
- Forks
- 1.2k
- Avg merge
- 4d 8h
- Merged PRs (30d)
- 1
Description
## Issue or Feature
- [x ] If this is an issue with installation, I have read the [troubleshooting guide](https://github.com/Automattic/node-canvas/issues/1511).
I have this old project I'm trying to run on Mac but I keep getting this error from canvas.node and i have tried resolving it with so many solutions I found on the internet.
## Error
node:internal/modules/cjs/loader:1302
return process.dlopen(module, path.toNamespacedPath(filename));
^
Error: dlopen(/mac/api/node_modules/canvas/build/Release/canvas.node, 1): Library not loaded: @loader_path/libpixman-1.0.42.2.dylib
Referenced from: /mac/api/node_modules/canvas/build/Release/canvas.node
Reason: no suitable image found. Did find:
/mac/api/node_modules/canvas/build/Release/libpixman-1.0.42.2.dylib: cannot load 'libpixman-1.0.42.2.dylib' (load command 0x80000034 is unknown)
/mac/api/node_modules/canvas/build/Release/libpixman-1.0.42.2.dylib: cannot load 'libpixman-1.0.42.2.dylib' (load command 0x80000034 is unknown)
at Module._extensions..node (node:internal/modules/cjs/loader:1302:18)
at Module.load (node:internal/modules/cjs/loader:1081:32)
at Module._load (node:internal/modules/cjs/loader:922:12)
at Module.require (node:internal/modules/cjs/loader:1105:19)
at require (node:internal/modules/cjs/helpers:103:18)
at Object. (/mac/api/node_modules/canvas/lib/bindings.js:3:18)
at Module._compile (node:internal/modules/cjs/loader:1218:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1272:10)
at Module.load (node:internal/modules/cjs/loader:1081:32)
at Module._load (node:internal/modules/cjs/loader:922:12)
at Module.require (node:internal/modules/cjs/loader:1105:19)
at require (node:internal/modules/cjs/helpers:103:18)
at Object. (/mac/api/node_modules/canvas/lib/canvas.js:9:18)
at Module._compile (node:internal/modules/cjs/loader:1218:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1272:10)
at Module.load (node:internal/modules/cjs/loader:1081:32) {
code: 'ERR_DLOPEN_FAILED'
}
Node.js v18.13.0
## Code
```js
const express = require('express');
const JsBarcode = require('jsbarcode');
const { createCanvas } = require('canvas');
const { handleErrors } = require('../helpers');
const api = process.env.API_PREFIX;
const router = new express.Router();
// Generate Barcode
router.get(`${api}/barcode/:data`, async (req, res) => {
const { data } = req.params;
try {
if (!data) {
return res.status(404).send();
}
const canvas = createCanvas(250, 100, 'image');
JsBarcode(canvas, data, {
fontSize: 24,
fontOptions: 'bold',
mod43: true,
});
const buffer = canvas.toBuffer();
res.set('Content-Type', 'image/png');
res.status(200).send(buffer);
} catch (e) {
handleErrors(e, res);
}
});
module.exports = router;
```
## Your Environment
* Version of node-canvas (output of `npm list canvas` or `yarn list canvas`):
*├── canvas@2.11.0
└─┬ jest@26.6.3
└─┬ @jest/core@26.6.3
└─┬ jest-config@26.6.3
└─┬ jest-environment-jsdom@26.6.2
└─┬ jsdom@16.7.0
└── canvas@2.11.0 deduped
* Environment node v18.13.0 on Mac OS X 10.14):
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.