Nie można znaleźć żadnych artykułów na ten temat w dowolnym miejscu. Zasadniczo chcę złapać błąd "Nie mogę znaleźć modułu" z poziomu programu i opcjonalnie poprosić o jego zainstalowanie, ale nie mogę wychwycić żadnych błędów nawet przy próbie/catch wokół moich żądań wymagających. Czy to możliwe? Nie widziałem nigdzie tego zrobionego.Złap błąd dotyczący wymaganego modułu w pliku node.js
Na przykład:
try {
var express = require('express');
} catch (err){
console.log("Express is not installed.");
//proceed to ask if they would like to install, or quit.
//command to run npm install
}
Przypuszczam, można to zrobić z oddzielnym pliku startowego js bez 3rd party wymaga, i po prostu wykorzystuje fs
aby sprawdzić node_modules
, a następnie ewentualnie prowadzi npm install
z procesu potomnego , następnie uruchamia node app
z innym dzieckiem. Ale wydaje się, że łatwiej byłoby to zrobić z poziomu jednego pliku app.js
'require' sam sugeruje, że moduł jest niezbędny do uruchomienia aplikacji. 'Nie można znaleźć modułu' jest niewymagającym wyjaśnienia komunikatem błędu, jeśli mnie o to poprosisz. Jako programista musisz uwzględnić wszystkie zależności w pakiecie, jeśli chcesz, aby inni korzystali z Twojej aplikacji. – Amberlamps
@Amberlamps Zazwyczaj lepiej jest nie dostarczać zależności do aplikacji jako części pakietu, ale mieć je pobrane w momencie użycia. Aby nie dostarczać nieaktualnych/przestarzałych modułów i nie marnować miejsca. Taki jest cel 'package.json' i' npm install'. Moje poszukiwania tego rozwiązania mają na celu uczynienie mojej aplikacji jak najbardziej przyjazną dla użytkownika i automatyczną. – krb686