Название конструктора Meteor в производстве сокращено до одной буквы

Эта проблема немного сбивает с толку. На Meteor я использую, среди прочего, iron-router и minimongoid. Все пакеты обновлены. Я также использую кофескрипт.

У меня есть AppController, расширяющий RouteController железного маршрутизатора. Я определил функцию, которая переводит имя конструктора в строку, которую я могу использовать как класс HTML:

viewName: () =>
    name = this.constructor.name
    _(_.str.underscored(name)).strLeft("_controller")

В разработке это работает нормально.

В рабочей среде это имя конструктора заканчивается одной буквой; Я видел, что это r, n или m. Minimongoid, кажется, сталкивается с аналогичной проблемой, так как имена этих классов также были сокращены до одной буквы.

Я использую этот пакет сборки: https://github.com/oortcloud/heroku-buildpack-meteorite.git


person bengreene    schedule 16.05.2014    source источник


Ответы (1)


Meteor использует uglify, чтобы минимизировать ваш JS-код, чтобы минимизировать пропускную способность. Одним из шагов в этом процессе является изменение всех имен локальных переменных на более краткую форму, начиная с тех однобуквенных имен, которые вы видите. Из-за этого вы не можете полагаться на имена переменных так, как вы это делаете. Возможное решение — использовать вместо этого словарь.

person Hubert OG    schedule 16.05.2014
comment
Хорошо, я подумал, что это может быть что-то вроде этого - большое спасибо. - person bengreene; 16.05.2014