Я сталкиваюсь с ошибкой при попытке настроить scss в проекте vue с использованием однофайловых компонентов.В настоящее время я сталкиваюсь с этой ошибкой, когда пытаюсь использовать блок <style lang="scss">
, но в противном случае мой проект работает должным образом.
ERROR in ./src/App.vue?vue&type=style&index=0&lang=scss& (./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/lib/loader.js??ref--4-2!./node_modules/vue-loader/lib??vue-loader-options!./src/App.vue?vue&type=style&index=0&lang=scss&)
Module build failed (from ./node_modules/sass-loader/lib/loader.js):
<template>
^
Invalid operator in attribute selector for object
in C:\Users\yanch\OneDrive\Desktop\virtualenvs\agg_site\client\src\App.vue (line 1, column 2)
@ ./src/App.vue?vue&type=style&index=0&lang=scss& (./node_modules/vue-style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/lib/loader.js??ref--4-2!./node_modules/vue-loader/lib??vue-loader-options!./src/App.vue?vue&type=style&index=0&lang=scss&) 4:14-279
@ ./src/App.vue?vue&type=style&index=0&lang=scss&
@ ./src/App.vue
@ ./src/main.js
@ multi (webpack)-dev-server/client?http://localhost:8080 ./src/main.js
Я не эксперт, но эта ошибка заставляет меня думать, что существует проблемас моими правилами vue-loader.Кажется, что он пытается скомпилировать шаблон как блок стиля (хотя я могу ошибаться).Это мой конфиг веб-пакета:
const HtmlWebpackPlugin = require('html-webpack-plugin');
const VueLoaderPlugin = require('vue-loader/lib/plugin');
const path = require('path');
module.exports = {
entry: './src/main.js',
module: {
rules: [
{ test: /\.js$/, use: 'babel-loader'},
{ test: /\.vue$/, use: 'vue-loader'},
{ test: /\.css$/, use: ['vue-style-loader', 'css-loader']},
{ test: /\.(png|jpg|gif)$/, use: 'file-loader' },
{ test: /\.scss$/, use: ['vue-style-loader','css-loader', 'sass-loader']},
]
},
plugins: [
new HtmlWebpackPlugin({
template: './src/index.html',
}),
new VueLoaderPlugin(),
],
devServer: {
historyApiFallback: true,
},
resolve: {
alias: {
'@': path.resolve(__dirname, './src'),
'~': path.resolve(__dirname, './src/style'),
}
},
};
И у меня установлены следующие пакеты:
"devDependencies": {
"@babel/core": "^7.2.2",
"@babel/preset-env": "^7.3.1",
"axios": "^0.18.0",
"babel-loader": "^8.0.5",
"babel-plugin-root-import": "^6.1.0",
"css-loader": "^2.1.0",
"file-loader": "^3.0.1",
"html-webpack-plugin": "^3.2.0",
"node-sass": "^4.12.0",
"path": "^0.12.7",
"rimraf": "^2.6.3",
"sass-loader": "^7.1.0",
"vue": "^2.6.10",
"vue-loader": "^15.7.0",
"vue-style-loader": "^4.1.2",
"vue-template-compiler": "^2.6.10",
"vuex": "^3.1.0",
"webpack": "^4.29.3",
"webpack-cli": "^3.2.3",
"webpack-dev-server": "^3.1.14"
},
Я выполнил инструкции по настройке vue-loader и считаю, что у меня установлены все необходимые загрузчикис правильными правилами, поэтому я не уверен, почему я получаю эту ошибку.Буду признателен за любую помощь.
** Редактировать - добавлен App.vue ниже:
<template>
<div id="app-container">
<NavBanner class="nav-banner"/>
<ProfileBanner/>
<router-view></router-view>
</div>
</template>
<script>
import ProfileBanner from '@/components/ProfileBanner.vue';
import NavBanner from '@/components/NavBanner.vue';
export default {
data() {
return {
message: 'Welcome to Leddit',
};
},
components: {
ProfileBanner,
NavBanner,
}
};
</script>
<style lang="scss">
#app-container {
font-family: 'Roboto', sans-serif;
color: blue;
height: 100%;
width: 100%;
}
.nav-banner {
height: 10%;
}
</style>