Задать вопрос
  • Как исправить ошибку Vue Js: "Error in nextTick: "NotFoundError: Failed to execute 'insertBefore' on 'Node'"?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Ну поищите где у вас по коду юзается insertBefore.
    Если не юзается, то теоретически это может быть из-за того, что как key в v-for попадаются дубликаты, но обычно это приводит к другим ошибкам.

    Таже ошибку полностью пишите: там, блин, после двоеточия идёт конкретное описание, которые вы обрезали и на скрине и в тексте.
    Ответ написан
    Комментировать
  • Как организуется преобразование подключаемых к сборке ES6-модулей в бандл?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Babel по умолчанию просто преобразует новый код(es6) в старый код(es5). Как очевидно из названия, es6-модулей в es5 нет, потому импорты он тоже преобразует. Это собственно всё, что он должен делеть.
    Сборка кода в единый бандл, минификация, оптимизация, treeshaking и прочее - не в его компетенции.
    Для сборки в glup есть свои инструменты, также есть системы строящиеся изначально от идеи сборки: webpack, rollup и т.д.
    Ответ написан
    Комментировать
  • Получение асинхронных данных из одного модуля в другой?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    В getter - никак. В action - просто запускать action модуля А и await его. Чтоб не запускать action модуля A несколько раз - можно сделать дополнительно - проксируеще-кеширущий action-прокладку, который будет запускать нужный action один раз и пока не будет ответа - на все следующие запросы отдавать Promise текущего.
    Ответ написан
    Комментировать
  • Как решить эту проблему с if/else?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    В localStorage хранятся только строки. Если вы делаете так localStorage.setItem('token', false), то при localStorage.getItem('token') вы получаете не '', а результат приведения false к строке, т.е. 'false'.
    Впрочем false !== '' - тоже истина, потому что !== сравнение без приведения типов.
    Ответ написан
    Комментировать
  • Настроить PHPStorm для работы Vue?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Используй vue create для создания проекта, выбирай eslint+prettier и PHPStorm всё сам как надо подтянет.
    Разве что может потребоваться установить опцию vueIndentScriptAndStyle в .eslintrc.js.
    Ответ написан
    3 комментария
  • Почему ругается TypeScript?

    Aetae
    @Aetae Куратор тега TypeScript
    Тлен
    Typescript работает только с кодом, он не знает что-там в Vue шаблоне, увы. Потому в $refs у него лежат голые компоненты Vue или Element'ы.
    Я лично вручную указываю через объединение интерфейсов - внизу добавляю перекрывающий:
    @Component
    export default class Login extends Vue { 
      // ...
    }
    export default interface Login {
      $refs: {
         loginForm: any; // на самом деле не any, а интерфейс компонента, поддерживающий нужные методы
      }
    }
    Ответ написан
    8 комментариев
  • Как избавиться от этого эффекта?

    Aetae
    @Aetae
    Тлен
    А зачем вам это делать скриптом? Просто добавьте <style> с нужными правилами.
    Если нужно какое-то условие, то с гарантией только примерно так:
    <script>
      if (true) {
        document.write(`<style>
          html, body {
            background-color:#232323 !important
          }
        </style>`);
      }
    </script>

    В обоих случаях это должно быть в head.
    Ответ написан
    1 комментарий
  • Как подключить ESLint к проекту?

    Aetae
    @Aetae Куратор тега TypeScript
    Тлен
    Должно быть очевидно из сообщения об ошибке, нет? Выше в корне проекта у вас лежит ещё один файл .eslintrc, который как-то конфликтует с вашим.
    Ответ написан
    Комментировать
  • Можно ли реализовать кастомный typescript-декоратор для типизации пропсов по аналогии с @Input в Angular?

    Aetae
    @Aetae Куратор тега TypeScript
    Тлен
    Я, увы, не до конца понял, что именно вам нужно, но одно могу сказать: IDE умеет работать напрямую только с самим typescript, т.е. если исходя из логики typescript там должен быть тайпчек или там может быть ограниченный набор для подстановки - это будет работать. Если нет - нет. Кастомные трансформы не учитываются.
    Также IDE может расширенно поддерживать популярные расширения и трансформы с помощью (встроенных) плагинов, но для своего уникального кейса, выходящего за стандартные рамки, вам придётся пилить свой плагин.
    Декораторы же - это не магия, это обычные функции + сахарный синтаксис.
    Ответ написан
    Комментировать
  • Почему через некоторое время fetch запрос начинает возвращать ошибку?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    5xx ошибки - ошибки сервера.
    Конкретно 503 - Service Temporarily Unavailable - сервис временно недоступен.
    Сервер шлёт тебя нахрен. Скорее всего там стоит защита от частых повторяющихся запросов. Либо сервер падает, но это маловероятно.
    Можешь попробовать рандомизировать частоту запроса и менять заголовки и юзерагент. Но не фает что поможет.
    Ответ написан
    Комментировать
  • Какие отличия cordova или react native?

    Aetae
    @Aetae
    Тлен
    С cordova ты пишешь обычные веб страницы, в которые прокинут внутренний api.
    С react (и проч.) native ты пишешь в строгих рамках системы и не можешь свободно применять весь набор возможностей современного web'a.
    В первом случае всё работает медленно - пишется быстро.
    Во втором случае пишется (по началу, по крайней мере) медленно - работает (в теории) быстро.

    Что выбирать - ваше дело.
    Ответ написан
    Комментировать
  • Почему websotrm не видит alias из webpack?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Возможно надо ему явно указать на конфиг:
    5ef9c87e6a094647920370.png
    Ответ написан
  • Насколько данный метод обновления сообщений правильный?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Если альтернатив со стороны сервера не предусмотрено(websocket или хотяб олдовый long polling), то только долбиться.
    Ответ написан
    Комментировать
  • Как отправить не-input переменные из формы на почту?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Ну и если делать по старинке и использовать встроенную отправку формы, то для этого есть скрытые input type="hidden" в которые можно класть какие-то данные и они отправятся вместе с формой.)
    Ответ написан
    Комментировать
  • Как изменить max-width container scss?

    Aetae
    @Aetae
    Тлен
    Переменные надо декларировать до подключения основных стилей.
    Ответ написан
    Комментировать
  • Как сделать вывод текста js чтобы он был в коде страницы?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Код страницы - это код станицы. Там есть только то, что там есть. Чтобы что-то было в коде - положите это туда.)
    Все скрипты выполняются после загрузки на машине клиента. Если вы хотите парсить чужой сайт - либо разбирайте скрипты, либо используйте headless браузер для парсинга.
    Ответ написан
    Комментировать
  • Возможно ли как то использовать константы в пути import'a?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Только динамический import() поддерживает использование переменных, при этом в бандл попадают все файлы соответствующие паттерну.

    Если же мы говорим именно о константах, то на этапе компиляции webpack всё равно не знает, что у вас там лежит в config. Он не запускает ваш код - он его собирает.
    Если конфиг-файл у вас статический, то вы можете подключить его в сам конфиг вэбпака и сделать там, например, алиас вида:
    `~static/i18n/CONFIG_LANG.json`:  path.resolve(`./static/i18n/${config.lang}.json`)
    и в коде, соответственно, писать:
    import default_locale from `~static/i18n/CONFIG_LANG.json`

    Это самый простой способ, в целом же через вэбпак можно много чего ещё наворотить. (даже написать свой loader, который будет таки (пытаться) расшифровывать константы в импорте)
    Ответ написан
    Комментировать
  • Как передать данные в параметрах запроса fetch?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Можно, если сервер принимает в таком виде. Судя по тому, что не работает - не принимает. GET и POST - разные типы запросов и каждый должен быть настроен отдельно с обоих концов.
    Ответ написан
    Комментировать
  • Првильно ли я использую библиотеки?

    Aetae
    @Aetae
    Тлен
    Нормально, фреймворки всегда жирные, это ж вам не какие-то жалкие библиотеки.)
    Просто надо использовать готовые пресеты на все случае жизни, либо от авторов\комьюнити (creat react app?), либо собственные. Каждый раз конфиг с нуля писать - конечно с ума сойдёшь.
    Ответ написан
    Комментировать
  • Есть идея на счет мульти-права пользователя в SPA приложениях?

    Aetae
    @Aetae
    Тлен
    Ну какбэ энтерпрайзно обычно это система: микророли - роли - должности(наборы ролей). Первые - это разрешение на определённый чих в определённом направлении внутри приложения, второе - связанный некоей логикой набор первых, третье - это связанный начальством набор вторых. Пользователю соответственно назначается третье, а внутри приложения проверяется первое.

    Если пилить на коленке - можно не париться и использовать однодноуровневую систему, в которой просто назначать юзеру роли и проверять оные сразу же в приложении. Список доступных ролей брать при логине.

    Роли никак не привязаны к структуре приложения и имеют говорящие названия.
    Ответ написан