JSDom в Azure (собственные модули Node.js)

У меня возникли проблемы с получением приложения nodejs, которое использует JSDom, для работы в Azure из-за того, что оно зависит от собственного модуля — Contextify, я понимаю, что Azure не обеспечивает компиляцию собственных модулей.

Однако согласно документации Azure

Поскольку облачные службы Windows Azure полагаются на папку node_modules, развернутую как часть приложения, любой собственный модуль, включенный в состав установленных модулей, должен работать в облачной службе, если он был установлен и скомпилирован в системе разработки Windows.

Все это отлично работает на моем устройстве разработки, поскольку оно скомпилировано во время установки npm, чего я не понимаю, так это почему оно не работает в Azure, когда я предоставляю скомпилированную версию? Если это работает в моем окне разработчика Windows, компиляция явно успешна. Я развертываю в Azure из локального репозитория git, поэтому мне интересно, не пропускаются ли скомпилированные файлы при фиксации?


person Eriedor    schedule 22.03.2013    source источник


Ответы (1)


ОБНОВЛЕНИЕ: последний выпуск Azure (в частности, серверная часть мобильных служб) поддерживает произвольные модули NPM — см. раздел "Мобильные службы: поддержка модуля NPM"

Из документов JSDom на npm:

К сожалению, для такого рода магии требуется C++. А в Node.js использование C++ из JavaScript означает использование «нативных модулей». Нативные модули компилируются во время установки, чтобы они работали именно на вашей машине; то есть вы не загружаете двоичный файл contextify из npm, а вместо этого создаете его локально после загрузки исходного кода из npm.

https://npmjs.org/package/jsdom#contextify

Поскольку ваши «собственные модули» не имеют той же подписи, что и любая машина в «собственном модуле» Azure, она не загружается.

person Josh E    schedule 12.05.2013