详解nuxt sass全局变量(公共scss解决方案)

恩,经过朋友的帮助搞定的,因为 nuxt资料比较少的原因,很感谢  “包子”的帮助

注意  本案例  只是把你通用 的 比如

$colour :#009688 #5FB878 #393D49 #1E9FFF #F7B824 #FF5722 ;

以上这种通用的变量抽出来,方便你在其他scss的样式里面调用

比如

li {
 background: nth($colour,6)
} 

只存储变量,别放公共的样式进去切记公共的样式 你可以参考我之前的博客那种写法

我直接上案例吧sass_jb51.rar

案例里面有运行说明

我建议你还是跟我一步一步来走,比较刻骨铭心

第一步新建文件夹 assets然后新建两个scss文件 a1.scss cyc.scss

a1.scss

@charset "utf-8";
li {
 span{color: nth($colour,6)}
}

cyc.scss

@charset "utf-8";
//font
body{
 background: yellow;
}
$colour :#009688 #5FB878 #393D49 #1E9FFF #F7B824 #FF5722 ;

第二 新建       pages/index.vue

<template>
 <ul>
  <li><span>1232323231</span></li>
  <li><span>你好是多少打算的</span></li>
 </ul>
</template> 

<script>
 import '~/assets/a1.scss';
 export default {
  name: 'date',
  data () {
   return { }//写死的数据
  }
 }
</script> 

<style>
</style>

第三 nuxt.config.js

const webpack = require('webpack'); 

module.exports = {
 head: {
  title: 'project',
  meta: [
   { charset: 'utf-8' },
   { name: 'viewport', content: 'width=device-width, initial-scale=1' },
   { hid: 'description', name: 'description', content: 'Nuxt.js project' }
  ]
 },
 build: {
  extend(config,ctx){
    const sassResourcesLoader = {
    loader: 'sass-resources-loader',
    options: {
     resources: [
     'assets/cyc.scss'
     ]
    }
    }
    // 遍历nuxt定义的loader配置,向里面添加新的配置。
    config.module.rules.forEach((rule) => {
    if (rule.test.toString() === '/\\.vue$/') {
     rule.options.loaders.sass.push(sassResourcesLoader)
     rule.options.loaders.scss.push(sassResourcesLoader)
    }
    if (['/\\.sass$/', '/\\.scss$/'].indexOf(rule.test.toString()) !== -1) {
     rule.use.push(sassResourcesLoader)
    }
    }) 

  },
 }
}

第四  package.json  (ps:   package.json里面是我之前的配置 直接复制过来的 ,但是不碍事,照着做)

{
 "name": "test",
 "dependencies": {
 "axios": "^0.17.0",
 "css-loader": "^0.28.7",
 "jquery": "^3.2.1",
 "mini-toastr": "^0.6.6",
 "node-sass": "^4.5.3",
 "nuxt": "^1.0.0-rc11",
 "postcss-loader": "^2.0.8",
 "sass-loader": "^6.0.6",
 "sass-resources-loader": "^1.3.1",
 "scss": "^0.2.4",
 "style-loader": "^0.19.0",
 "vue-notifications": "^0.9.0",
 "vuex": "^3.0.1"
 },
 "scripts": {
 "dev": "nuxt",
 "build": "nuxt build",
 "start": "nuxt start",
 "generate": "nuxt generate"
 },
 "devDependencies": {
 "coffee-loader": "^0.9.0",
 "coffee-script": "^1.12.7",
 "node-sass": "^4.5.3",
 "pug": "^2.0.0-beta6",
 "pug-loader": "^2.3.0",
 "sass-loader": "^6.0.6"
 }
}

运行代码

这个是给你本地调试的  亲测 可以用  你会发现 我重复引用了  sass  这是因为 第二行  是官网给的, 我怕你更新失败了,所以让你在从淘宝更新一遍

npm install --save nuxt axios vuex
npm install --save-dev pug@2.0.0-beta6 pug-loader coffee-script coffee-loader node-sass sass-loader
npm install cnpm
cnpm install --save node-sass sass-loader postcss-loader sass-resources-loader style-loader css-loader
npm run dev//运行 

好  到这里没了,调试是没问题了,如果你要打包成文件

npm run generate//打包
//你打包好要放服务器上 不然 nuxt默认的那几个JS会报错 你就看不到效果了

要么你入口文件配置好

到这里就OK了,闲麻烦 你就直接从我开头给的链接进去下下来demo  直接运行就好了。

另外,因为我这个案例 是   引入 scss 的写法 ,如果你是写在style的  要这么写

<style lang="scss">
 li {
  /*background: #fff;*/
  background: nth($colour,6)
 } 

</style> 

这里注意了  lang是   scss 不是sass

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Vue引入sass并配置全局变量的方法

    引入sass 首先使用官方提供的脚手架vue-cli进行搭建框架,这里就不做说明了,查阅官网即可. 等安装完所有依赖后,安装sass的依赖包: npm install --save-dev sass-loader //sass-loader依赖于node-sass npm install --save-dev node-sass 然后在build文件夹下的webpack.base.conf.js的rules里面添加配置: { test: /\.sass$/, loaders: ['style',

  • 详解nuxt sass全局变量(公共scss解决方案)

    恩,经过朋友的帮助搞定的,因为 nuxt资料比较少的原因,很感谢  "包子"的帮助 注意  本案例  只是把你通用 的 比如 $colour :#009688 #5FB878 #393D49 #1E9FFF #F7B824 #FF5722 ; 以上这种通用的变量抽出来,方便你在其他scss的样式里面调用 比如 li { background: nth($colour,6) } 只存储变量,别放公共的样式进去切记公共的样式 你可以参考我之前的博客那种写法 我直接上案例吧sass_jb51

  • 详解Vue 全局引入bass.scss 处理方案

    为解决在Vue组件中全局引入 scss 变量及 mixins ,装载了一个名为 "sass-resources-loader" 解析器. 安装 $ > cnpm i -D sass-resources-loader 配置 配置的话是在 vue 的 loader 解析器中配置,即在 vue-cli 脚手架方式构建出来的文件中是以 build/utils.js,在该文件中定义了 cssLoaders() 方法,该方法定义了诸如 css.less的解析方式,具体如下. // build

  • 详解Nuxt内导航栏的两种实现方式

    方式一 | 通过嵌套路由实现 在pages页面根据nuxt的路由规则,建立页面 1. 创建文件目录及文件 根据规则,如果要创建子路由,子路由的文件夹名字,必须和父路由名字相同 所以,我们的文件夹也为index,index文件夹需要一个默认的页面不然nuxt的路由规则就不能正确匹配页面 一级路由是根路由 二级路由是index,user,默认进入index路由 下面是router页面自动生成的路由 { path: "/", component: _93624e48, children: [

  • 详解uniapp的全局变量实现方式

    前言 本文整理了一些uniapp全局变量的实现方式,细节知识来自于uView官网中对uniapp中的全局变量实现,感兴趣的同学可以前往uView官网搜索vuex进行查看 全局变量的实现方式 一般来说在uniapp中有以下几种方式 本地存储 配置文件 挂载到 Vue.prototype globalData vuex 下面对这5种方式的实现进行介绍 本地存储 永久存储,以app为例即使该应用被关闭,该数据依然会被存储 这是一种永久的存储方式,类似于web的Local Storage(有关于Cook

  • 详解Flutter混排瀑布流解决方案

    背景 流式布局,这是一种当前无论是前端,还是Native都比较流行的一种页面布局.特别是对于商品这样的Feeds流,无论是淘宝,京东,美团,还是闲鱼.都基本上以多列瀑布流进行呈现,容器列数固定,然后每个卡片高度不一,形成参差不齐的多栏布局. 对于Native来说,无论是iOS还是Android,CollectionView和RecyclerView都能满足我们的绝大部分场景了.不过目前闲鱼很多业务场景都是在Flutter上进行实现的,当时Flutter官方只提供了ListView和GridVie

  • 详解MySQL实时同步到Oracle解决方案

    1 需求概述 将MySQL5.6生产库多张表的数据实时同步到Oracle11g数据仓库,MySQL历史数据700G,平均每天产生50G左右日志文件,MySQL日志空间50G,超过后滚动删除日志文件.整个同步过程不可影响MySQL业务操作. 2 技术原理 采用灵蜂数据集成软件BeeDI将MySQL数据实时同步到Oracle,通过ETL全量同步历史数据,通过日志解析方式实时同步增量数据. 受限于日志空间,如果将所有历史数据一次性同步,需要的时间会超过一天,全量同步过程产生的日志会被删除,造成实时日志

  • 详解Nuxt.js 实战集锦

    读本文前,请先熟读nuxt官方文档,并且具备一定的vue.js相关开发经验 中文文档 英文文档 vue SSR指南 一.CSR和SSR对比 在SPA之前的时代,我们传统的Web架构大都是SSR,如:Wordpress(PHP).JSP技术.JavaWeb等这些程序都是传统典型的SSR架构,即:服务端取出数据和模板组合生成 html输出给前端,前端发生请求时,重新向服务端请求html资源. SPA(CSR): SPA应用,到了Vue.React,单页面应用优秀的用户体验,逐渐成为了主流,页面整体是

  • 详解Nuxt.js Vue服务端渲染摸索

    本文采用nuxt进行服务端渲染https://zh.nuxtjs.org/ Nuxt.js 十分简单易用.一个简单的项目只需将 nuxt 添加为依赖组件即可. Vue因其简单易懂的API.高效的数据绑定和灵活的组件系统,受到很多前端开发人员的青睐.国内很多公司都在使用vue进行项目开发,我们正在使用的简书,便是基于Vue来构建的. 我们知道,SPA前端渲染存在两大痛点:(1)SEO.搜索引擎爬虫难以抓取客户端渲染的页面meta信息和其他SEO相关信息,使网站无法在搜索引擎中被用户搜索到.(2)用

  • 详解Spring Bean的循环依赖解决方案

    如果使用构造函数注入,则可能会创建一个无法解析的循环依赖场景. 什么是循环依赖 循环依赖其实就是循环引用,也就是两个或则两个以上的bean互相持有对方,最终形成闭环.比如A依赖于B,B依赖于C,C又依赖于A.如下图: 注意,这里不是函数的循环调用,是对象的相互依赖关系.循环调用其实就是一个死循环,除非有终结条件. Spring中循环依赖场景有: (1)构造器的循环依赖 (2)field属性的循环依赖. 怎么检测是否存在循环依赖 检测循环依赖相对比较容易,Bean在创建的时候可以给该Bean打标,

  • 详解Python Matplot中文显示完美解决方案

    原因与现象 Matplot是一个功能强大的Python图表绘制库,很遗憾目前版本自带的字体库中并不支持中文字体.所以如果在绘制内容中需要显示中文,那么就会显示为方格字符. 解决办法 有一个较为完美的解决方案,通过扫描Matplot自带字体库以及系统字体库,寻找能够支持的中文字体,如果能够找到的话,就设置第一个为Matplot的字体熟悉. import matplotlib.pyplot as plt from matplotlib.font_manager import FontManager

随机推荐