Mijn vraag
Hoe kan ik de specifieke optional dependencies van een onderliggende node-module overslaan omdat deze in mijn specifieke configuratie niet werken/compilen? Op dit moment wil npm bij elke module die ik installeer of verwijder alsnog de missende onderliggende optional dependencies van een eerder geïnstalleerde module compilen. Dat gaat telkens niet goed, maar hij probeert het elke keer weer opnieuw. Dat is traag en vervelend.
Het gaat om een MQTT-broker, namelijk node-red-contrib-mqtt-broker, wat een jasje is rond Mosca. Mosca wordt nog maar heel beperkt onderhouden. Ik kan overstappen naar alternatieve software (bijv. Mosquitto), maar deze zit netjes in Node-Red en doet verder precies wat ik wil.
De modules die dwars zitten zijn trouwens: snappy 5.0.5, en leveldown 1.4.6. Dat kan ik ook zien hij klaar is met compilen
Ik heb maar beperkte ervaring met NPM, dus ik zie mogelijk iets heel eenvoudigs over het hoofd.
Relevante software en hardware die ik gebruik
Hoe kan ik de specifieke optional dependencies van een onderliggende node-module overslaan omdat deze in mijn specifieke configuratie niet werken/compilen? Op dit moment wil npm bij elke module die ik installeer of verwijder alsnog de missende onderliggende optional dependencies van een eerder geïnstalleerde module compilen. Dat gaat telkens niet goed, maar hij probeert het elke keer weer opnieuw. Dat is traag en vervelend.
Het gaat om een MQTT-broker, namelijk node-red-contrib-mqtt-broker, wat een jasje is rond Mosca. Mosca wordt nog maar heel beperkt onderhouden. Ik kan overstappen naar alternatieve software (bijv. Mosquitto), maar deze zit netjes in Node-Red en doet verder precies wat ik wil.
De modules die dwars zitten zijn trouwens: snappy 5.0.5, en leveldown 1.4.6. Dat kan ik ook zien hij klaar is met compilen
Ik heb maar beperkte ervaring met NPM, dus ik zie mogelijk iets heel eenvoudigs over het hoofd.
Relevante software en hardware die ik gebruik
- Raspberry Pi, node v10.15.3
- NPM 6.4.1
- Node-Red V0.20.5, node-red-contrib-mqtt-broker (welke gebruik maakt van Mosca).
- Alle optional dependencies overslaan met --no-optional: de MQTT broker werkt niet meer, blijkbaar zijn sommige van de onderliggende modules toch niet zo optioneel als de naam zou doen vermoeden.
- Via npm shrinkwrap de dependencies bevriezen en dan editten. Daar staan de in de weg zittende dependencies niet in genoemd. Bovendien is de documentatie zeer beperkt.
- Op GitHub bij onderliggende modules om ondersteuning/aanpassing vragen. Deze lijken stil te staan en zelf aanpassen gaat mijn kennis te boven.
- De package.json van Mosca aanpassen door de modules eruit te verwijderen bij de lijst met optionele modules: dat vinden de onderliggende modules niet leuk (getest met leveldown).
- Mosca klonen op GitHub en dan aanpassen: mug => olifant
Rekeningrijden is onvermijdelijk, uitstel is struisvogelpolitiek.