hollanditkzn, не подходит для задач веба. В вебе лучше всего показали себя компонентная архитектура + Flux. Если интересно почитайте про историю развития веб фреймворков и архитектуры вебприложений.
почитайте любую статью-руководство по npm. Там все просто. Устанавливаете нужные модули, импортируете и используете в коде. Потом если это клиентский(который будет выполняться в браузере), его надо собрать. Тут могут помочь gulp + gulp-babel или webpack. Я советую попробовать оба инструмента, так как они совершенно разные.
Polyakh, ох как-то все запутанно.
У вас не работает собранный проект в production режиме? Но работает собираемый на лету в development?
Первая ошибка в vendor бандле.
Попробуйте в конфиге в LoaderOptionsPluginminimize: false, debug: true поставить. Может так понятней будет.
Никита Полевой, с этого и надо было начинать, что не имеете представления о промышленных стандартах.
Но изучить этот вопрос и повысить качество своего кода никогда не поздно.
Правило, еще раз оговорюсь, не мое. В вашем случае "гениально", однобоко посмотрев на проблему, смеяться над правилом, которое включило в стандарты сообщество JS программистов, в лице одних из лучших его представителей, досконально изучив проблему и возможные последствия. Если интересно можете поискать и почитать обсуждения.
Зайдите на сайт https://eslint.org найдите плашку Who's using ESLint и нажмите. Узнаете, что это стандарт чуть ли не для всего передового фронтенда, а с ними и для многих других компаний.
Можете посмотреть на Prettierhttps://prettier.io/en/users/, он также набирает популярность.
Сам рекомендую к использованию оба инструмента.
Вот ESLint файл из первого попавшегося репозитория Mozillahttps://github.com/mozilla/thimble.mozilla.org/blo...
Они тут так же используют Prettier. Не удивлюсь если узнаю, что он используется во всех их более менее новых JS проектах как стандарт.
Вот правило https://eslint.org/docs/rules/no-prototype-builtins . ESLint сейчас стандарт в промышленной JS разработке. Prettier скоро им станет.
Попробуйте устроиться в маломальски серьезную компанию использующую ESLint и precommit проверки в проектах. Скорей всего, если это правило нарочно не отключили, что вряд ли, то вы даже коммит сделать не сможете.
Никита Полевой, это не моя паранойя, а промышленные стандарты. Почитайте в документации и обсуждениях на github ESlint почему к этому пришли.
Вот сохранять в константу нет никакого смысла.
Мне не надо смотреть в документацию Mozila, так как я работаю в больших промышленных проектах с высокими требованиями к качеству и безотказности кода.
А это всего лишь один из стандартов гарантирующих безопасность и безотказность. Спорить с этим глупо.
А обсуждения почитайте на досуге, там много примеров.
"ибо любые извращения, включая вызов hasOwnProperty из прототипа, не пройдут еще на стадии ревью."
Вам prettier, используемый сейчас в куче известных и серьезных компаний и проектов, с настройками по-умолчанию, код с использованием hasOwnProperty, но без такого "извращения" даже закоммитить не даст, какое там ревью.
Morfeey, Проверка hasOwnProperty исключит наследуемые перечисляемые свойства. А вызов ее из протоипа объекта исключит ее возможное переопределение на экземпляре, в случае которого приложение может поймать исключение и завершиться ошибкой.
Все это конечно маловероятно, но в промышленных проектах с кучей разработчиков лучше застраховаться от всего. По крайней мере, знать полезно.
1. Переменные в js в верхнем регистре называть не принято.
2. for in не гарантирует соблюдение очередности при итерации.
3. Использовать правильно и безопасно for in надо так:
for (var key in yourObj) {
if(Object.prototype.hasOwnProperty.call(yourObj, key) ) {
var obj = yourObject[key];
if (obj.status === "error") {
console.log(obj.text);
}
}
}
markmaddison, это я понял. Нужен весь код, где вы его выводите.
По поводу содержимого когда открываете, писал выше.
Вывели в консоль еще пустой, но консоль отображает текущее состояние, а в нем уже есть элементы.
markmaddison, у вас в консоли даже значение ключа length показано.
Не может он ноль показывать, когда в массиве, что-то есть.
Если показывает ноль, значит выводите array.length еще до того как в него добавились элементы. А сам массив к консоли с элементами, потому что консоль показывает его текущее состояние.
Видимо вы получаете туда ошибки асинхронно по слушателям событий, а вывести пытаетесь в статическом потоке, который до этого события давно завершился.
alex-1917, возможности столбца с иерархией - одна из самых крутых фич продуктов Jet Brains.
Одни только Find in path, Refactor и прицел позволяют сэкономить уйму времени в больших проектах.