vue+sass定义全局变量,后缀名.scss报错之解决

vue在现在程序员圈中,已经是众所周知了,那么在我们去使用vue的过程中经常会使用强大的css预处理语言sass,那么在这个过程中我们有各种问题,下面我们就简单的介绍其中一个小编碰到的问题;

在使用scss中,我们定义了变量方便更改整个项目的配色,那么我们在main.js中引入全局scss文件,但直接引入scss文件会报错。

那么针对此类问题我们有两种处理方式

第一、各个组件中引入(这个方法的弊端相信大家都看得到,就是需要在每一个组件中引入,写重复的代码)如下:

import ../assets/css/common.scss;

这种方式很显然我们每个程序员都是不推荐的;

第二、全局引入

首先,需要安装一个开发插件:sass-resources-loader

npm i sass-resources-loader --save-dev

接着,修改我们脚手架中build/utils.js文件,修改scss的加载设置

return { 
    css: generateLoaders(),
    postcss: generateLoaders(),
    less: generateLoaders('less'), 
    sass: generateLoaders('sass', { indentedSyntax: true }),
    scss: generateLoaders('sass'), 
    stylus: generateLoaders('stylus'), 
    styl: generateLoaders('stylus')
 }

修改为:

 return {
     css: generateLoaders(),
     postcss: generateLoaders(),
     less: generateLoaders('less'),
     sass: generateLoaders('sass', { indentedSyntax: true }),
     scss: generateLoaders('sass').concat({
         loader: 'sass-resources-loader',
         options: {
             resources: path.resolve(__dirname, '../src/assets/css/common.scss')
          }
     }),
     stylus: generateLoaders('stylus'),
     styl: generateLoaders('stylus')
  }

之后重新启动项目,并且在main.js中引入公共的常量文件即可。

原文地址:http://blog.51cto.com/smalljiayi/2139052

时间: 2024-08-01 21:11:44

vue+sass定义全局变量,后缀名.scss报错之解决的相关文章

vue.js 中使用(...)运算符报错的解决方法

vue.js 中使用(...)运算符报错的解决方法 Syntax Error:Unexpected token(XX:X) }, computed:{ ...mapGetters([ 'pageSize' ]) }, 这个错误是在项目中,不识别es6的扩展运算符,解决办法(四步走)如下: 第一步:安装babel-plugin-transform-object-rest-spread cnpm install babel-plugin-transform-object-rest-spread 第二

nuxtjs在vue组件中使用window对象编译报错的解决方法

我们知道nuxtjs是做服务端渲染的,他有很多声明周期是运行在服务端的,以及正常的vue声明周期mounted之前均是在服务端运行的,那么服务端是没有比如window对象的location.navagitor等,以及H5的FormData()方法,所以当你在created之前使用这些时,会报错,那么如何处理呢? 1.自己的写的函数里包含window等 因为nuxt为SSR框架,所以其编译打包时会区分服务端渲染还是客户端渲染(即浏览器),在vue文件中使用window对象报错的原因是,webpac

关于vue,webpack 中 “exports is not defined”报错

vue项目npm run dev 后项目报错 : 提示 "exports is not defined". 导致这个问题是因为balbel的配置文件.babelrc的问题: { "presets": [ ["env", { "modules": false }], "stage-2" ], "plugins": ["transform-runtime"], "

Vue 项目: npm run dev b报错 “'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序 或批处理文件。”

前提: 电脑已经安装了nodeJS和npm,  项目是直接下载的zip包. 报错步骤为1:cd /d 目录: 2. npm ren dev  -------> 报错如下: > webpack-dev-server --inline --progress --config build/webpack.dev.conf.js 'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序或批处理文件.npm ERR! code ELIFECYCLEnpm ERR! errno 1

Vue 项目在其他电脑 npm run dev 运行报错的解决方法

一个 Vue 项目从一台电脑上传到 github 上之后,再另外一台电脑上 git clone .并使用 npm run dev 或 npm run start 发生以下报错的解决方法. 报错原因 缺少 node_modules 里面的依赖.在项目目录下使用 npm install然后再 npm run dev.如果在这一步当中, npm install 执行的过程中,处于一直卡顿的状态.说明网络状况不佳.建议使用 cnpm 淘宝源. 淘宝源 使用 cnpm -v 查看是否已经安装 cnpm.如

20170514002Oracle 11g R2安装过程中遇到的报错及解决办法

Oracle 11g R2安装过程中遇到的报错及解决办法 1.提示Check if the DISPLAYvariable is set.    Failed<<<< 解决方案: #xhost +  //切换到root用户输入 #su – Oracle  //切换到oracle用户 $./runInstaller  //执行安装程序 xhost 是用来控制X server访问权限的. 通常当你从hostA登陆到hostB上运行hostB上的应用程序时, 做为应用程序来说,hostA

金蝶财务软件帐套属性设置保存和帐套启用报错的解决方法

金蝶财务软件新建立帐套,在帐套属性设置完毕保存提示如下图的提示,所以帐套也就启用不了,在启用的时候也会提示下图的错误: 查找原因的时候,一直提示"NT AUTHORITY\NETWORK SERVICE"登陆失败,就突然想到了,是不是登陆数据库的时候,默认以管理员登陆,管理员能登陆成功,是不是得把这个用户加入到管理员组才可以呢,结果就试了下,最后发现还真是这个情况,把这个用户加入管理员后,帐套启用成功.以下是用户加入管理员组的步骤,可以参考以下: 进入计算机管理 找到组 双击管理员组

Loadrunner参数化连接oracle、mysql数据源报错及解决办法

Loadrunner参数化连接oracle.mysql数据源报错及解决办法 (本人系统是Win7 64,  两位小伙伴因为是默认安装lr,安装在 最终参数化的时候,出现连接字符串无法自动加载出来: 最后通过安装在,问题到此解决 1.通过数据库连接参数化大量数据,电脑本地已经成功安装了数据库驱动,且本地可以配置数据源成功,在loadrunner 中配置数据源却找不到对应的数据库驱动. ----A:检查当前loadrunner工具的版本,是32位还是64位(目前还没有64位的),32位是不能安装64

couldn&#39;t set locale: correctly报错的解决

最近登录一台Solaris的服务器时,总提示:"couldn't set locale: correctly"的信息. 碰巧执行一个shell脚本,执行的开始还是出现了"couldn't set locale: correctly"的信息,但未影响后面的逻辑. 这里提示的是locale有错,查了下locale命令是将有关当前语言环境或全部公共语言环境的信息写到标准输出上.公共语言环境是所有应用程序可以使用的语言环境.即使用这个命令设置程序运行的不同语言环境.执行lo