Аддон SDK. Разрезать main.js на несколько единиц?

Я разрабатываю некоторые расширения для Mozilla FireFox с использованием Addon SDK. Мой main.js сейчас очень большой, содержит много кода во всех видах. Можно ли нарезать их на несколько пользовательских файлов js?

main.js - Загрузчик
Unit1.js - Делай работу А
Unit2.js - сделать работу B
Unit3.js - делать работу C

или любой хороший совет для разработки очень функциональных расширений.

1 ответ

Решение

Вы можете создать и require() "локальные" модули. Также ознакомьтесь со структурой модуля SDK.

Следовательно, вы можете попробовать модульные вещи.

lib/joba.js

function non_exported_helper() {
  // do something;
}

function JobA() {}
JobA.prototype = {
  doSomething: function() {
    non_exported_helper();
    return something_else;
  }
};
// Export JobA
// Stuff not in `exports` will not be visible to other code
// require()ing a module. 
exports.JobA = JobA;

lib/main.js

var JobA = require("./joba").JobA;

var job = new JobA();
job.doSomething();

Конечно, любой модуль может использовать require() Но остерегайтесь кругового импорта.

Вам решать, что поместить в какой модуль. Например, один модуль может реализовывать один "класс", в то время как другой модуль может реализовывать набор функций, или другой модуль может использоваться для фоновых запросов и еще один модуль для всего пользовательского интерфейса.

Может быть, посмотрите на сам SDK, который организован в модулях, и / или посмотрите, что делают другие stdlib, например, stdlib Python или stdlib go и т. Д.

Другие вопросы по тегам