Предположим, у меня есть библиотека, написанная в Javascript, которая будет использоваться в приложении стека MEAN.
Я хочу использовать свою библиотеку как из NodeJS, так и внутри Angular. Чтобы оставаться идиоматичным, я хотел бы, чтобы библиотека отображалась как модуль внутри узла и как служба в пределах угла.
единственный способ, которым я могу это сделать, - сделать что-то вроде:
var myLibrary = function(){
var myLib = {};
myLib.myFunc1 = function() {
//Do some cool stuff
};
return myLib;
};
if (typeof module !== 'undefined') {
module.exports = myLibrary();
} else{
var app = angular.module('myApp.services', []);
app.factory('myLibrary',myLibrary);
}
Это будет работать, но оно имеет как минимум два существенных ограничения:
Я хотел бы знать, знает ли кто-нибудь о лучшем решении, или если я должен отказаться от использования услуг Angular и использовать одну из библиотек, которая позволяет функциональность модуля Node на стороне клиента.
Проделав немного поиска, это выглядит как лучшее решение: