Unexpected unknown pseudo-element selector «::v-deep»?

Ошибка "Unexpected unknown pseudo-element selector «::v-deep»" в Nuxt.js возникает, когда вы используете псевдоэлемент ::v-deep в стилях, но этот псевдоэлемент не поддерживается в Nuxt.js по умолчанию.

::v-deep является специфичным селектором, который используется во vue-loader для обхода ограничений области видимости стилей в компонентах Vue. Это позволяет применять стили к дочерним компонентам, которые находятся во вложенных компонентах.

Однако, начиная с версии Nuxt.js 2.x, плагин vue-loader, который раньше использовался, был заменен на @nuxt/vue-app. В этой новой версии плагина не поддерживается селектор ::v-deep.

Есть несколько способов решить эту проблему.

1. Используйте атрибут scoped для стилей в компоненте. Это создаст уникальные идентификаторы классов для стилей внутри компонента и изолирует их от других компонентов. Например:

<style scoped>
  .myClass::v-deep {
    // Ваши стили
  }
</style>

2. Если вам действительно нужно применить стили ко всему приложению или более высоким уровням вложенности компонентов, можно использовать глобальные стили. Для этого добавьте свое правило ::v-deep в файл стилей, который подключается глобально. Например:

/* app.css */
.myClass::v-deep {
  // Ваши стили
}

3. Вместо ::v-deep можно использовать другие селекторы, такие как :deep или >>>, которые эквивалентны ::v-deep. Например:

<style scoped>
  .myClass >>> .childClass {
    // Ваши стили
  }
</style>

Обратите внимание, что селекторы >>> и /deep/ также не рекомендуются к использованию и могут быть устаревшими методами в будущем.

Это не полный список возможных способов решения проблемы, и выбор зависит от ваших потребностей и предпочтений. Но надеюсь, что эти рекомендации помогут вам решить проблему с ошибкой "Unexpected unknown pseudo-element selector «::v-deep»" в Nuxt.js.