Как исследовать "Не удается найти модуль X", поступивший из пакетов, прошедших проверку?
Режим отчаяния: перепробовал много разных конфигов и все провалилось. У меня есть пакет browserified + babelified под названием videomail-client.js здесь:
https://github.com/binarykitchen/videomail-client/tree/develop/dist
Основная запись package.json этого пакета указывает на этот файл.
Теперь, когда я require()
этот пакет из другого проекта и просмотрите его, затем я вижу эту ошибку из задачи gulp с помощью browserify:
[16:26:32] Error: Cannot find module './keys' from '/home/michael-heuberger/code/videomail.io/node_modules/videomail-client/dist'
at /home/michael-heuberger/code/videomail.io/node_modules/browser-resolve/node_modules/resolve/lib/async.js:55:21
at load (/home/michael-heuberger/code/videomail.io/node_modules/browser-resolve/node_modules/resolve/lib/async.js:69:43)
at onex (/home/michael-heuberger/code/videomail.io/node_modules/browser-resolve/node_modules/resolve/lib/async.js:92:31)
at /home/michael-heuberger/code/videomail.io/node_modules/browser-resolve/node_modules/resolve/lib/async.js:22:47
at FSReqWrap.oncomplete (fs.js:152:21)
Хмммм, звучит сложно? Позвольте мне перефразировать. Пакет видео-клиент-клиент проверен. Другой проект, videomail.io, требует его и снова просматривает все вместе с другими пакетами. Вот и все, что не получается.
Кстати, когда я запускаю автономные примеры с использованием videomail-client.js, он работает нормально.
Я думаю, что проблема заключается в том, что browserify не может решить ./keys
файл. Но он должен быть включен в пакет browserified videomail-client.js и разрешен оттуда. Как я могу сказать browserify, чтобы решить это правильным способом?
Предложения приветствуют, как я могу исследовать и исправить это лучше всего. Спасибо!!
2 ответа
Решение состоит из двух этапов: используйте автономную опцию browserify и пакет gulp-derequire. Это работает сейчас.
Это звучит как проблема, с которой я столкнулся несколько лет назад (и да, это сложно описать:))
Я так и не получил ответа, но, возможно, вам повезет больше. Решение, с которым я в конце концов пошел, заключалось в том, чтобы не пытаться повторно просматривать уже просмотренные библиотеки; Я закончил тем, что просто конкатенировал это и свернул весь пакет позже.