javascript - 如何在 Vue.JS 中添加将编译的全局 scss 文件?
问题描述
我正在尝试在我的 VueJS 项目中导入一个 scss 文件,然后它将在其中编译并因此能够与我的项目一起使用。但是,我需要一些帮助,因为目前它只是错误。有没有办法做到这一点?请注意,我对 VueJS 很陌生,所以我只是在了解基础知识。
我在我的 src 文件夹中创建了一个名为 scss 的文件夹,其中包含我的 main.scss 文件。接下来在我的 Vue.JS 中,我有以下代码;
<template>
<div id="app">
<Home></Home>
<Primary></Primary>
<Secondary></Secondary>
</div>
</template>
<script>
import Home from './components/Home.vue'
import Primary from './components/Primary.vue'
import Secondary from './components/Secondary.vue'
export default {
name: 'app',
components: {
'Home': Home,
'Primary': Primary,
'Secondary': Secondary
}
}
module.exports = {
css: {
loaderOptions: {
sass: {
data: `
@import "@/scss/main.scss";
`
}
}
}
};
</script>
<style lang="scss">
#app {
display:block;
}
</style>
解决方案
为了简单起见,只需使用这个技巧
- 创建一个名为的文件(如果在您创建项目时
vue.config.js
它不是自动创建的)vue-cli
- 将这些代码添加到您创建的文件中
module.exports = {
css: {
loaderOptions: {
sass: {
additionalData: `
@import "@/assets/scss/main.scss";
`
}
}
}
};
@
方法dir这src
意味着@/assets
与src/assets
- 我假设你有这个
main.scss
文件,如果你想知道它是如何制作的,你可以在其中包含所有子 scss 文件,看看这里 使用它真的很酷 prependData
可能无法工作或抛出错误我使用这些的原因是因为我正在使用"sass-loader": "^8.0.2"
. 这里有一些有用的信息
- 在
"sass-loader": "^7.*.*"
尝试使用data
- 在
"sass-loader": "^8.0.2"
尝试使用prependData
- 在
"sass-loader": "^9.0.0"
尝试使用additionalData
- 之后停止服务器并再次运行它以加载我们所做的新配置
vue.config.js
- 如果您正在使用
vuetify
它可能会引发错误,因此请确保将处理器名称与扩展名匹配,例如如果您有.scss
文件,则需要使用这些配置
scss: { // the change was made here (match the option name with file extension)
additionalData: `
@import "@/assets/scss/main.scss";
`
}
如果您正在使用.sass
文件,请使用这些配置
sass: { //the change was made here (match the option name with file extension)
additionalData: `
@import "@/assets/scss/main.sass";
`
}
推荐阅读
- elasticsearch - 在 elasticSearch 中为 _id 字段设置 doc_values
- vb.net - 如何保持来自用 VB.NET TextBox 编写的 Arduino 串行的数据
- html - Bootstrap 4图像滑块添加表单不能做小尺寸和中心
- c++ - 在循环内定期调用昂贵的函数
- php - 空字段消息未正确显示
- javascript - 如何将 HighChart.getOption() 与 react-native-highchart 一起使用
- css - Angular 6 - html元素背景颜色不随组件改变
- c++ - 将卷积应用于图像的特定区域
- kubernetes - Kubernetes v1.12 kubectl exec 的问题
- perl - readline 挂在手动管道()上