webpack - 共享全局变量 SASS - vue
问题描述
我正在用 vue 开发一个项目,在某些组件中我的想法是使用单文件组件。
为了在组件中使用 SASS,我遵循了vue-loader的文档。
它奏效了,问题是现在我想添加带有 SASS 变量的文件,但我没有得到它。
我在某些方面看到将这个文件导入到每个组件中,但我认为这不是最好的解决方案,所以我继续搜索,发现有人在谈论我在代码中表示的方式,但它仍然不起作用.
任何建议。
webpack.config
module.exports = {
module: {
rules:[
{
test: /\.vue$/,
use: 'vue-loader'
},
{
test: /\.scss$/,
use: [
'vue-style-loader',
'css-loader',
{
loader: 'sass-loader',
options: {
data: '@import "/resources/assets/sass/_variables.scss";'
},
}
]
}
]
}
};
组件vue
<template>
<div class="test">
<span>test</span>
</div>
</template>
<style lang="scss">
.test {
background: $red;
}
</style>
错误
Undefined variable: "$red".
解决方案
这是怎么回事?我遇到了同样的问题。尝试评论css-loader
和vue-style-loader
。
以后会不会有问题?
所以,正如我所见,你甚至没有使用这两个库。所以不行。vue-style-loader
但是,如果你想将它保留在你的项目中,请确保它css-loader
正确安装在你的package.json中。
要安装它们:
npm install -D vue-style-loader
npm install -D css-loader
但我个人认为最好不要使用它...
您的代码将如下所示:
module: {
rules: [
// ... other rules omitted
{
test: /\.scss$/,
use: [
// 'vue-style-loader',
// 'postcss-loader',
{
loader: 'sass-loader',
options: {
// you can also read from a file, e.g. `variables.scss`
// use `prependData` here if sass-loader version = 8, or
// `data` if sass-loader version < 8
additionalData: `@import "path/to/your/file.scss";`
}
}
]
}
]
},
我希望它对你有帮助!
推荐阅读
- typescript - 当涉及到 TypeScript 时,webpack 配置函数的类型是什么?
- c++ - C ++中的名称和变量有什么区别
- api - 如何找到基本网址?
- python - PySide2 接收者签名
- python - 如何在服务器上上传文件?
- c# - 如何在 Hololens 的背景上加载字节数组
- javascript - React 和 Typescript,警告:React.createElement:类型无效 - 期望字符串但得到:未定义
- python - 运行 manage.py 命令时如何解决回溯问题?
- flutter - 我怎样才能使这种类型的滑块颤动?
- python - 如何将 ploygon.io REST API 数据带入数据框