将 Bootstrap 包含到 Vue-Project 时出错

Error when including Bootstrap into Vue-Project

我正在尝试将 Bootstrap-Vue 包含在我的(新的)Vue 项目中。我使用了 Bootstrap-Vue Vue CLI 3 插件 (vue add bootstrap-vue)。使用 npm run serve 启动应用会导致以下错误:

Failed to compile.

./src/App.vue?vue&type=style&index=0&lang=scss& (./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--8-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./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/dist/cjs.js):
SassError: Undefined variable.
   ╷
29 │   -webkit-tap-highlight-color: rgba($black, 0); // 5
   │                                     ^^^^^^
   ╵
  node_modules/bootstrap/scss/_reboot.scss 29:37        @import
  src/assets/scss/vendors/bootstrap-vue/index.scss 4:9  @import
  src/App.vue 20:9                                      root stylesheet

我的 main.js 看起来像这样:

import Vue from 'vue'
import './plugins/bootstrap-vue'
import App from './App.vue'
import './assets/app.scss'

Vue.config.productionTip = false

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

bootstrap-vue.js

import Vue from 'vue'

import BootstrapVue from 'bootstrap-vue'

Vue.use(BootstrapVue)

app.scss

$body-bg: #000;
$body-color: #111;

@import 'node_modules/bootstrap/scss/bootstrap.scss';
@import 'node_modules/bootstrap-vue/src/index.scss';

我很确定它与导入某些文件有关,但我想不通。我正在使用 Vue 版本 2.6.11。

我已经设法解决了这个问题:当通过 vue add bootstrap-vue 包含 bootstrap-vue 时,系统会问您三个问题:

  • 使用babel/polyfill? → 是
  • 使用scss? → 是
  • 是否要在所有 SFC 组件中注入变量、函数和混合? → 如果您在这里回答“否”,则会导致所描述的错误。选择“是”。

要使 Bootstrap 正常工作,需要采取的最后一步是导入样式。您可以通过将以下内容添加到您的 main.js:

import 'bootstrap/dist/css/bootstrap.css'
import 'bootstrap-vue/dist/bootstrap-vue.css'