我目前正在使用Vite和Bootstrap 5.2构建一个VueJS 3应用程序,我想在我的一些组件中使用reakpoint mixin,但我无法在所有组件中导入bootstrap .scss文件。
我想只导入一次,并且能够在整个代码中使用所有的引导函数/mixin。
This is what I have already tried (none of them worked for me):
1. Add `bootstrap` file import to `css > preProcessors > scss > additionalData` `vite.config.js` settings:
//vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'
export default defineConfig({
server: {
port: 8080
},
resolve: {
alias: {
'@': path.resolve(__dirname, './src'),
find: '@vue/runtime-core',
replacement: '@vue/runtime-core/dist/runtime-core.esm-bundler.js',
'~bootstrap': path.resolve(__dirname, 'node_modules/bootstrap')
}
},
plugins: [vue()],
css: {
preprocessorOptions: {
scss: {
additionalData: `@import "~bootstrap/scss/bootstrap";`
}
}
}
})
1.创建一个./src/assets/styles.scss
文件,将bootstrap
导入其中并将其添加到css > preProcessors > scss > additionalData
vite.config.js
设置中:
// vite.config.js (rest of settings equal to the one above)
css: {
preprocessorOptions: {
scss: {
additionalData: `@import "./src/assets/styles.scss";`
}
}
}
./src/assets/styles.scss
@import "~bootstrap/scss/bootstrap";
1.在main.js
文件中导入相同的./src/assets/styles.scss
文件
1.在main.js
中导入bootstrap
文件
我还有一个问题:如果我做了唯一起作用的事情,即在我想要的每个Vue组件上导入bootstrap
文件:它会影响性能,因为(据我所知) Bootstrap 将完全导入所有的时间?
我非常乐意分享该项目的任何其他细节,以试图得到一些答案。
1条答案
按热度按时间w51jfk4q1#
我的解决方案是将
./node_modules/bootstrap/scss/mixins/_breakpoints.scss
文件的内容复制到一个自定义的./src/styles/_mixins.scss
文件中,并将以下内容添加到文件的顶部:如果没有这个,mixin文件就不会知道$grid-breakpoints。如果你已经设置了bootstrap来使用自定义断点,那么就复制(或
@use '...' as *
)它们。使用示例:
我认为这是目前存在的最佳解决方案之一。