vue.js - 如何将我的变量 SCSS 导入 Webpack 以供全球使用。(Vue)
问题描述
我想在我的代码中使用变量,但问题是如果不将 .scss 文件导入每个组件,我就无法在每个组件中使用变量。
有人提到使用 Webpack 可能会有所帮助,并且允许我在项目范围内使用变量而无需单独导入。
问题是,我以前从来没有弄乱过 Webpack,甚至不确定在哪里导入 scss 文件。
在 Vue 中,我将文件“捆绑”到一个文件中(我相信是 package.json)。
我的 package.json 文件看起来像这样 -
{
"name": "freelance",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
},
"dependencies": {
"vue": "^2.5.21",
"vue-router": "^3.0.1"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^3.3.0",
"@vue/cli-plugin-eslint": "^3.3.0",
"@vue/cli-service": "^3.3.0",
"babel-eslint": "^10.0.1",
"eslint": "^5.8.0",
"eslint-plugin-vue": "^5.0.0",
"node-sass": "^4.9.0",
"sass-loader": "^7.0.1",
"vue-template-compiler": "^2.5.21"
},
"eslintConfig": {
"root": true,
"env": {
"node": true
},
"extends": [
"plugin:vue/essential",
"eslint:recommended"
],
"rules": {},
"parserOptions": {
"parser": "babel-eslint"
}
},
"postcss": {
"plugins": {
"autoprefixer": {}
}
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 8"
]
}
显然,我在那里看不到任何 webpack,所以想象我需要添加它吗?(或者其他地方?)也许有人可以帮忙?我将在哪里导入我的“variables.scss”文件。)
解决方案
正如我想象的那样,您正在使用 vue cli。您可以在项目文件夹中创建一个名为vue.config.js
. 在该文件中,您可以定义以下内容来为每个组件加载一个 scss 文件(您的文件位于 /styles/variables.scss 中):
module.exports = {
css: {
loaderOptions: {
sass: {
data: '@import "@/styles/variables.scss";'
}
}
}
};
您可以在此处阅读有关 vue.config.js 文件的更多信息:https ://cli.vuejs.org/config/#css-loaderoptions
推荐阅读
- powershell - 使用 gMSA 帐户执行命令
- javascript - 无法使用 selenium 或 javascript 在 Safari 浏览器中拖动滑块
- python - 在 Python 中绘制耦合常微分方程系统的向量场
- java - 签名密钥的算法“SHA256withECDSA”不等于有效的 HmacSHA* 算法名称,不能与 HS512 一起使用
- c# - 如何从 asp.net 核心中的 startup.cs 获取 HTTP 标头值?
- javascript - createAsyncThunk: 错误: addCase 不能用两个 reducer 调用相同的操作类型
- javascript - Reactjs,Typescript 错误 TS2322:类型 {} 不可分配给类型“IntrinsicAttributes & IntrinsicClassAttributes”
- javascript - React axios 编译失败
- javascript - JS - 将数组从一个文件导出到另一个文件
- c# - 在 swagger 模型模式中隐藏 DTO 字段,但在响应 json 中显示这些字段