项目多多少少应该都遇到有公用文件这种情况,比如说偶尔某一天产品来找你,能不能明天把网站的这个颜色给我改下?第二天再来给我换回来?

如果再css2.x时代,不使用css预处理技术,这一改只能“查找替换”了,使用预处理不使用变量也只有“查找替换”了。

当然,css3的时代就另当别论了,因为css3本身已经开始支持变量(参考文档MDN)!

话不多说,首先可以去看看nuxt官网的公用文件使用方式,链接

毕竟还要装个第三方包文件style-resources,老实说每多装一个插件项目被黑的风险就大一分,毕竟有event-stream包被植入恶意代码的前车之鉴!!

下面说说如何不使用这个插件,直接使用node-sass的data属性实现公用文件。

先看看vue cli3官网给的sass公用文件实现方式,链接!此方法只适用于vue cli项目,不适用nuxt项目!!!

 // vue.config.js
module.exports = {
css: {
loaderOptions: {
// 给 sass-loader 传递选项
sass: {
// @/ 是 src/ 的别名
// 所以这里假设你有 `src/variables.scss` 这个文件
data: `@import "~@/variables.scss";`
}
}
}
}

nuxt毕竟不是使用的vue cli,所以这个方式只能给我们参考,nuxt具体实现如下:

 // nuxt.config.js
export default {
...
/*
** Build configuration
*/
build: {
...
// https://zh.nuxtjs.org/api/configuration-build/#loaders
loaders: {
scss: {
// scss公用文件
// 路径前面的assets是nuxt.js内置别名
data: `
@import "assets/sass/_fn.scss";
@import "assets/sass/_mixins.scss";
@import "assets/sass/_var.scss";
`,
},
},
...
},
...
}

注意上面配置的loaders下的scss,不是vue cli3的sass!!以上是假设你的assets/sass目录中存在_var.scss,_mixins.scss,_fn.scss三个文件,当然你可以写N个都行。

其中路径前面的assets是nuxt内置别名,官网文档只说了~和@是内置的根目录,并没有介绍assets这个别名,其实内置目录有如此之多:

当然是用的nuxt版本不一样,可能内置别名也不一样,查看项目路径别名和新增项目路径别名方法如下:

// nuxt.config.js
export default {
...
/*
** Build configuration
*/
build: {
...
// https://zh.nuxtjs.org/api/configuration-build/#loaders
extend (config, ctx) {
if (ctx.isDev) {
// 查看别名配置信息
console.log(config.resolve.alias);
// 添加 alias 配置
// !这儿添加的别名不能在nuxt.config.js文件中使用
Object.assign(config.resolve.alias, {
'sass': path.resolve(__dirname, 'assets/sass'),
});
}
},
...
},
...
}

本文章中使用的nuxtjs版本为"nuxt": "^2.8.1"。

以上就是nuxt配置公用scss文件的使用方式了,本人习惯使用scss,所以没去捣鼓sass文件公用方式,方法跟上面差不多,具体查看node-sass配置

内容完!

Nuxt.js中scss公用文件(不使用官方插件style-resources)的更多相关文章

  1. nuxt.js使用scss

    1>安装一些loader npm i node-sass sass-loader scss-loader --save-dev 2>在nuxt.config.js中配置(需要全局使用的sc ...

  2. parcel 在js中导入 html 文件

    parcel不支持将html文件导入为字符串,如果您对parcel使用熟练,直接使用 parcel-plugin-phtml 插件即可,此插件使用 .phtml 后缀 为什么用parcel? 因为从我 ...

  3. vue.js中引入其他文件export的方法:

    import {GetPosition} from '../../lib/utils'  //找到 该方法的文件路径,然后 用{}拿到 该方法 var position =GetPosition(); ...

  4. Nuxt.js笔记

    前置知识 SSR服务器渲染 Vue SSR(server side rendering)服务端渲染 和 Vue SPA(single page application)单页应用 Vue SSR-> ...

  5. 解析Nuxt.js Vue服务端渲染摸索

    本篇文章主要介绍了详解Nuxt.js Vue服务端渲染摸索,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下.如有不足之处,欢迎批评指正. Nuxt.js 十分简单易用.一个简单 ...

  6. nuxt.js如何实现同级目录下建多个动态路由,并将链接设置.html后缀

    nuxt.js中如果在同级目录中建两个_xxxx.vue的动态路由文件,那么页面跳转始终是跳的一个页面,如何解决这个问题呢?下面举个栗子: 第一步:新建两个页面文件 第二步:在nuxt.config. ...

  7. Nuxt.js的踩坑指南(常见问题汇总)

    本文会不定期更新在nuxt.js中遇到的问题进行汇总.转发请注明出处,尊重作者,谢谢! 强烈推荐作者文档版踩坑指南,点击跳转踩坑指南 在Nuxt的官方文档中,中文文档和英文文档都存在着不小的差异. 1 ...

  8. Nuxt.js项目实战

    感悟 经过几个周六周日的尝试,终于解决了服务端渲染中的常见问题,当SEO不在是问题的时候,或许才是我们搞前端的真正的春天,其中也遇到了一些小坑,Nuxt.js官方还是很给力的,提issue后很积极的给 ...

  9. Node.js中module文件定义的top-level变量为何是私有的

    在Node.js中,module文件里面使用var,const或者let定义的top-level变量为何是私有的,只能在这个模块文件中使用呢? 原因就是,在模块文件中的内容执行之前,node.js会降 ...

随机推荐

  1. AngularJS简介与四大特征

    1.1 AngularJS简介 AngularJS  诞生于2009年,由Misko Hevery 等人创建,后为Google所收购.是一款优秀的前端JS框架,已经被用于Google的多款产品当中.A ...

  2. Jenkins集成Sonar Quabe和权限配置

    目录 安装Sonar Jenkins配置sonar Maven Jenkins Job配置 Pipeline Jenkins Job配置 Sonar权限管理 Sonar quality Gate通过阈 ...

  3. 信安周报-第04周:系统函数与UDF

    信安之路 第04周 前言 这周自主研究的任务如下: 附录解释: SQLi的时候应对各种限制,可以使用数据库自带的系统函数来进行一系列变换绕过验证 eg:字符串转换函数.截取字符串长度函数等 注入的时候 ...

  4. 使用VS Code远程开发

    今天看到园子里的一篇文章:VS Code Remote 发布!开启远程开发新时代,简单的看了一下,它可以直接利用本地的环境远程开发,最直接的好处有: 在部署相同的操作系统上进行开发,或者使用更大或更专 ...

  5. WPF 精修篇 缩放ScaleTransform

    原文:WPF 精修篇 缩放ScaleTransform 缩放 ScaleTransform 参数 ScaleX  X轴缩小值 正常为1 ScaleY Y轴缩小值 正常为1 CenterY ,Cente ...

  6. [转] golang 字符串比较是否相等

    1 前言 strings.EqualFold不区分大小写,"==" 区分且直观. 2 代码 golang字符串比较的三种常见方法 fmt.Println("go" ...

  7. 添加shiv让所有现代浏览器都支持 HTML5 语义元素 html5.js让IE(包括IE6)支持HTML5元素方法

    引用Google的html5.js文件 <!--[if IE]> <script src=”http://html5shiv.googlecode.com/svn/trunk/htm ...

  8. Vue开发日志

    一 搭建环境 mac 安装node brew install node 安装vue 全家桶 npm install -g vue-cli 选择一个目录做初始化 vue init webpack myp ...

  9. iOS应用开发应遵循的10条设计原则

    转自:http://mobile.51cto.com/design-309719.htm 1.操控便捷 iOS应用的控制设计应该具有圆润的轮廓和程式化的梯度,操作便捷. 2.结构清晰.导航方便 充分利 ...

  10. Linux的httpd服务搭建

    在服务搭建前,还要了解一下httpd的日志. 日志有助有工作人员,查看服务器出错状况,更能统计数据分析网页运行情况. PV和UV两大分析 PV  Page View 页面访问量 UV  User Vi ...