Я создаю приложение, используя VueJS с Bootstrap-Vue. Я пытаюсь импортировать файл SCSS, чтобы переопределить переменные Bootstrap, а также другой SCSS для пользовательских стилей.
Вот что у меня есть на данный момент:
npm install node-sass sass-loader css-loader --save-dev
{ test:/\.(s*)css$/, use:['style-loader','css-loader', 'sass-loader']}
main.js
import Vue from 'vue'
import BootstrapVue from 'bootstrap-vue'
import App from './App'
import router from './router'
import fontawesome from '@fortawesome/fontawesome'
import light from '@fortawesome/fontawesome-pro-light'
Vue.use(BootstrapVue)
Vue.config.productionTip = false
fontawesome.library.add(light)
/* eslint-disable no-new */
new Vue({
el: '#app',
router,
components: { App },
template: '<App/>'
})
<style lang = "scss">
@import './assets/scss/app.scss';
</style>
Когда я запускаю npm run dev, я получаю следующую ошибку:
ERROR Failed to compile with 1 errors 21:05:54
error in ./src/main.js
Syntax Error: Unexpected token, expected ; (29:7)
27 | })
28 |
> 29 | <style lang = "scss">
| ^
30 | @import './assets/scss/app.scss';
31 | </style>
32 |
@ multi (webpack)-dev-server/client?http://localhost:8080 webpack/hot/dev-server ./src/main.js
fontawesome.library.add(light)
/* eslint-disable no-new */
new Vue({
el: '#app',
router,
components: { App },
template: '<App/>'
})
<style lang = "scss">
@import './assets/scss/app.scss';
</style>
Я не уверен, почему это не работает. Я пробовал различные решения на Github и Stack Overflow.
Любая помощь будет оценена по достоинству.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы не можете написать тег стиля в javascript таким образом. Вам нужно либо переместить его в файл vue и прикрепить к нему загрузчик, либо использовать стандартный импорт:
import './assets/scss/app.scss';
Без тегов style или символа @.
Мне также пришлось удалить { test:/\.(s*)css$/, use:['style-loader','css-loader', 'sass-loader']} из build / webpack.base.conf.js.
Я добавил файл assets / scss / app.scss и получаю ОШИБКУ «Этот относительный модуль не найден: ./assets/scss/app.scss в ./src/main.js»
@Cichy Там не так много информации, я не знаю, как выглядит ваша структура каталогов.
Ваш файл - file.js, и вам нужно использовать компонент Single file, чтобы иметь возможность использовать scss так, как вы намеревались. Вместо этого вам нужно преобразовать ваш файл в file.vue, тогда вы сможете использовать <template /> <script /> <style />