#css #sass #vuejs2
#css #sass #vuejs2
Вопрос:
Мой репозиторий: https://github.com/leongaban/VueJS-RobotBuilder
Курс, которому я следую: https://app.pluralsight.com/player?course=vuejs-fundamentalsamp;author=jim-cooper
Это после того, как я уже настроил его. Не помню, была ли опция sass.
В любом случае в настоящее время возникает эта ошибка:
Недопустимый CSS после «<«: ожидаемый 1 селектор или at-правило, было «»
Я заменил свой старый <style> CSS stuff here </style>
С:
<style lang="scss">
@import "_robotBuilder.scss";
</style>
Я также установил следующие пакеты, но я не вижу конфигурационного файла webpack, который я мог бы отредактировать.
"node-sass": "^4.11.0",
"sass-loader": "^7.1.0",
"style-loader": "^0.23.1",
Комментарии:
1. Используете ли вы VueCLI v3 для создания проекта? Также вы пытаетесь написать свой CSS внутри тегов стилей в шаблоне или просто ссылаетесь на один файл scss, который включает в себя все?
2. @BryceHowitson Я использовал CLI, поэтому у меня нет файла конфигурации webpack.. существует postcss.config.js однако файл в этом проекте.
3. Да, эта часть сбивает с толку. Если вам нужна конфигурация webpack, вы можете создать (или найти уже созданную)
vue.config.js
Предполагается, что вся конфигурация webpack будет помещена туда. ИспользуйтеVueCLI3
при поиске в Google, чтобы получить лучшие результаты. Когда я переключился на новый VueCLI, этот пост действительно помог мне
Ответ №1:
Только что исправил мою проблему.
Я удалил это:
<style lang="scss">
@import "_robotBuilder.scss";
</style>
Подумал, что было странно, что import
в любом случае будет существовать внутри тега стиля.
Затем я очистил файл .scss, а затем просто использовал эту инструкцию import внутри <script>
раздела.
import './_robotBuilder.scss';
Обновить
Только что узнал, что вы можете использовать <style scoped>
тег, чтобы стили применялись только к компоненту.
Комментарии:
1. Я думаю, то, что у вас было, сработало бы, но ошибка, скорее всего, заключалась в том, что не удалось найти файл, а не ту ошибку, которую вы получили
Ответ №2:
Мой app.vue (основной контейнер) имеет только это в тегах стиля
<style lang="scss">
@import url('https://fonts.googleapis.com/css?family=Lato:300,400,400i,700,900amp;subset=latin-ext');
@import "@/scss/style.scss";
</style>
и работает просто отлично.
И это в vue.config.js
const path = require("path");
module.exports = {
baseUrl: '/',
outputDir: undefined,
assetsDir: 'assets',
runtimeCompiler: undefined,
productionSourceMap: undefined,
parallel: true,
css: {
modules: false,
loaderOptions: {}
}
}
Отключение модульности CSS «может» иметь какое-то отношение к тому, чтобы заставить его работать с импортом…