2016-11-07 2 views
-1

Я только недавно переключился с использования устаревшего cfx на jpm для разработки моих надстроек Firefox. Каждый раз, когда я вношу изменения в свой код и хочу его снова проверить, я должен использовать команду «jpm run», которая буквально занимает от 3 до 5 минут, чтобы запустить браузер с новым кодом внутри. Это делает невозможным разработку моего дополнения, потому что каждый раз, когда я хочу протестировать новую строку кода, я должен ждать несколько минут.Тестирование с помощью JPM Run чрезвычайно медленное

Такая проблема не возникает в Chrome, поэтому я не уверен, что думают люди в Mozilla. Они хотят сделать почти невозможным разработку надстроек для своего браузера?

Что другие разработчики дополнений Firefox делают для проверки своего кода? Они просто часами запускают и перезапускают браузер очень медленно? Или есть обходной путь?

+0

Запуск Firefox с 'jpm run' и минимальное дополнение занимает менее 10 секунд для меня (только что протестировано). Насколько велика ваша надстройка? Какую версию 'jpm -version' вы используете? Какую версию Firefox вы используете? Требуется больше информации (например, тип машины, ОС и т. Д. И т. Д.). – Makyen

+0

Я получил его до менее чем 30 секунд, удалив некоторые файлы в моей дополнительной папке (это было как 50 МБ).У меня были некоторые копии самого файла XPI, и это могло замедлиться. Это все еще очень раздражает, что я должен перезапустить браузер каждый раз. Я использую версию для разработчиков Firefox, и на самом деле это должен быть способ просто отключить распакованные дополнения, как в Chrome. Когда я развиваюсь в Chrome, мне просто нужно посетить страницу chrome: \\ extensions и нажать «Обновить», чтобы увидеть последнюю версию моей работы. – user1850261

ответ

0

Вы можете использовать jpm watchpost вместе с автозагрузчиком для расширения, чтобы автоматически перезагрузить расширение в запущенном сеансе firefox.

Но даже без этого это не должно занимать минуты, только секунды.

+0

Просто попробовал это с jpm post -post-url http: // localhost: 8888 /, но я получаю ошибку ECONNREFUSED. Любая идея почему? – user1850261

0

Как the8472 has mentioned, вы можете протестировать дополнительные расширения SDK without the need to restart the browser using jpm с помощью jpm watchpost. По-видимому, это немного зависит от конфигурации. Я не использовал это, так как нашел бы, что надстройка автоматически обновляется при каждой записи в файл, немного раздражающей. Я часто меняю несколько файлов или делаю несколько записей в один и тот же файл между моментом, когда я запускаю надстройку для тестирования. В принципе, я хочу сохранить больше контроля над тем, когда надстройка перезагружается, чем автоматически ее выполнять каждый раз при изменении файла.

Существует способ загрузки temporary add-ons, который работает как для распакованных надстроек, так и для .xpi. Проблема в том, что до запуска jpm ваше дополнение на самом деле не является дополнением Firefox. jpm добавляет обертки вокруг содержимого вашего дополнения, чтобы сделать его normal bootstrapped add-on. Без этих обертков ваше дополнение не будет работать. Одна из возможностей заключается в том, чтобы запускать jpm xpi каждый раз, когда вы хотите протестировать новую версию: после того, как вы предварительно загрузили надстройку в качестве временного надстройки, вы запустите jpm xpi, затем нажмите кнопку «Обновить», на about:debugging.

[Этот метод будет иметь проблемы, которые вам нужно будет работать через]: В качестве альтернативы, вы можете распаковать файл .XPI и продолжить разработку из файлов, содержащихся в полученных каталогах, используя надстройку на метод временного установки вашего надстройки (щелкните по любому файлу в каталоге, в котором вы распаковывали файлы для установки в качестве временного дополнения). Однако этот метод может помешать вам использовать jpm с вашим дополнением. Кроме того, jpm выполняет несколько иные действия при упаковке вашего дополнения в файл .xpi в зависимости от содержимого вашего дополнения. Если это так, все может начаться, если вы значительно измените функциональность надстройки (например, изменения в package.json не будут распространяться на install.rdf). С помощью этого метода вам, вероятно, потребуется использовать "normal", non-jpm method of creating an .xpi file, если вы хотите опубликовать свое дополнение.

Смежные вопросы