You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Bootstrap-Vue+Webpack+Vue.js中使用自定义SCSS报错求助

解决VueJS结合Bootstrap-Vue引入SCSS时的语法错误问题

嘿,我一眼就发现问题所在了——你在main.js里写了Vue单文件组件的<style>标签!这可是纯JavaScript文件,根本不识别这种模板语法,难怪会报Unexpected token, expected ;的错误。

下面一步步给你解决:

第一步:移除main.js里的错误代码

先把main.js里这段不符合JS语法的代码删掉:

<style lang="scss">@import './assets/scss/app.scss';</style>

第二步:选择正确的SCSS导入方式

有两种靠谱的方案,选一种适合你的就行:

方案1:直接在main.js中用JS语法导入SCSS

既然你已经配置好了webpack的sass-loader,直接用JavaScript的import语法导入SCSS文件即可:

// main.js
import Vue from 'vue'
import BootstrapVue from 'bootstrap-vue'

// 先导入Bootstrap和Bootstrap-Vue的基础样式
import 'bootstrap/dist/css/bootstrap.css'
import 'bootstrap-vue/dist/bootstrap-vue.css'
// 再导入你的自定义SCSS文件
import './assets/scss/app.scss'

Vue.use(BootstrapVue)

new Vue({
  el: '#app',
  render: h => h(App)
})

方案2:在根组件(App.vue)的style标签中导入

如果习惯在Vue单文件组件里管理样式,就打开你的根组件App.vue,在它的style块中导入:

<!-- App.vue -->
<template>
  <div id="app">
    <!-- 你的组件内容 -->
  </div>
</template>

<script>
export default {
  name: 'App'
}
</script>

<style lang="scss">
// 如果需要覆盖Bootstrap变量,可以先导入Bootstrap的变量文件
// @import '~bootstrap/scss/_variables.scss';
// 再导入自定义SCSS
@import './assets/scss/app.scss';
</style>

第三步:优化依赖(可选但推荐)

node-sass已经被官方废弃,建议换成dart-sass(即npm包sass),避免后续版本兼容问题:

# 卸载旧依赖
npm uninstall node-sass sass-loader css-loader --save-dev
# 安装兼容的新依赖
npm install sass sass-loader css-loader style-loader --save-dev

第四步:确认webpack配置正确性

检查build/webpack.base.conf.js中的规则,确保loader顺序正确(style-loader在最外层,依次是css-loader、sass-loader):

module: {
  rules: [
    // 其他规则...
    {
      test: /\.(sa|sc|c)ss$/,
      use: [
        'style-loader',
        'css-loader',
        'sass-loader'
      ]
    }
  ]
}

做完这些后,再执行npm run dev,应该就能正常运行了!

内容的提问来源于stack exchange,提问作者Kumaran S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:13:04