У меня проблемы с записью аддона в репо в appDir / public.Я хотел бы написать файл JSON для каждой сборки, который будет включен в app / dist.Проблема, с которой я сталкиваюсь, заключается в том, что при запуске «ember serve» наблюдатель файлов обнаруживает новый файл и снова перестраивает, вызывая бесконечный цикл.
Я попытался написать файл JSON с помощью preBuild () иПерехватывает postBuild (), сохраняя в / public, но после сборки наблюдатель обнаруживает его и перестраивает снова и снова, каждый раз записывая новый файл.Я также попытался использовать папку my-addon / public и записать в нее то же самое.
Единственное, что частично работает, - это запись в init (), что нормально, за исключением того, что я не вижу изменений с использованием ember serve.
Я пытался использовать метод treeForPublic (), но не получил дальше.Я могу написать файл и использовать treeForPublic ().Это выполняется только один раз, при первоначальной сборке.Это частично решает мою проблему, потому что я помещаю файлы в папку app dist.Но я не думаю, что ember serve перезапустит treeForPublic при последующем изменении файла в приложении.
Есть ли способ игнорировать определенные файлы из файлового просмотра?И все же разрешить файлы включать в сборку?Может быть, в ember-cli-build есть свойство exclude watch?
Вот мой treeForPublic (), но я полагаю, моих проблем здесь нет:
treeForPublic: function() {
const publicTree = this._super.treeForPublic.apply(this, arguments);
const trees = [];
if (publicTree) {
trees.push(publicTree);
}
// this writes out the json
this.saveSettingsFile(this.pubSettingsFile, this.settings);
trees.push(new Funnel(this.addonPubDataPath, {
include: [this.pubSettingsFileName],
destDir: '/data'
}));
return mergeTrees(trees);
},
ОБНОВЛЕНИЕ05/20/2019
Я, вероятно, должен задать новый вопрос на этом этапе ...
Моя цель здесь - создать номер сборки с автоматическим приращением, который обновляется как в emberпостроить и угасать служить.Мои комментарии под ответом @ real_ates ниже помогают объяснить почему.В конце концов, если я могу использовать это только при сборке, это совершенно нормально.
Ответ от @real_ate был очень полезным и решил проблему с бесконечным циклом, но он не работает на угольной подаче.Может быть, это просто невозможно, но мне бы очень хотелось узнать в любом случае.В настоящее время я пытаюсь изменить переменные среды вместо использования treeforPublic ().Я задал отдельный вопрос об обновлениях addon config () для среды Ember: Обновление переменных среды Ember.js не вступает в силу при использовании метода in-repo addon config () на ember serve
Не знаю, могу ли пометить ответ @ real_ate в качестве принятого решения, потому что он не работает на угольной подаче.Это было чрезвычайно полезно и познавательно!