vue-cli4使用全局less文件中的变量配置操作


Posted in Javascript onOctober 21, 2020

目录结构如下:

vue-cli4使用全局less文件中的变量配置操作

需求:

在Navgation.vue中使用global.less中的变量

vue-cli3的配置方法如下:传送门

vue-cli4的配置方法如下:

安装 style-resources-loader

npm i style-resources-loader -D

在 vue.config.js 中加上如下配置,没有则创建该文件,文件名不能改,如下:

// vue.config.js
const path = require('path')
 
module.exports = {
 lintOnSave: false,
 chainWebpack: config => {
 const types = ['vue-modules', 'vue', 'normal-modules', 'normal']
 types.forEach(type => addStyleResource(config.module.rule('less这里写你的样样式类型').oneOf(type)))
 },
}
 
function addStyleResource (rule) {
 rule.use('style-resource')
 .loader('style-resources-loader')
 .options({
  patterns: [
  path.resolve(__dirname, './src/assets/css/global.less这里写你的全局样式地址'),
  ],
 })
}

补充知识:vue项目中配置LESS全局变量注入

在日常项目中,很多人都用到了css预处理器 ,如sass,less, stylus,处理样式非常方便,尤其是嵌套,变量,函数等,让我们书写css非常nice,在项目中一般会建立一个样式文件夹(此处用less),存放公共样式和公共变量如项目主体色,字体大小等等的变量,但是在项目中使用这些变量的时候通常都要在style标签内用@import '***/***/***/***.less';这样的方式来导入公共变量,页面一多,每个页面一般都需要引入就会感到很繁琐,所以此处就用到webpack的一些配置来达到全局注入,单个文件不需要单独引入的目的。

此处说下自己用的之前的脚手架版本的配置

在build文件夹下的webpack.base.conf.js文件中修改,主要借助了sass-resources-loader。

配置的时候还需要在问价头部引入path,const path = require('path')

然后在module模块下进行配置

module: {
  resolve: {
  extensions: ['.ts', '.js', '.vue', '.json'],
  // 顺带说下 此处可以配置路径别名,以后引入文件就不需要../../../这样了,直接@/就可以了,代表src下的路径,当然可设置多个,可自行配制
  alias: {
   '@': utils.resolve('src')
  }
  },
  ///
 rules: [
   ...(config.dev.useEslint ? [createLintingRule()] : []),
   // /-------------
  {
   test: /\.less$/,
   use: [{
    loader: process.env.NODE_ENV === 'production' ? MiniCssExtractPlugin.loader : 'vue-style-loader'
   }, {
    loader: 'css-loader',
    options: {
    sourceMap: cssSourceMap
    }
   }, {
    loader: 'less-loader',
    options: {
    sourceMap: cssSourceMap
    }
   }
   //此处开始------/ 
   {
    loader: 'sass-resources-loader',
    options: {
    resources: [
     path.resolve(__dirname, '此处写自己配置的公共变量文件路径,比如../src/themes/publicStyle/common.less')
    ]
    }
    //此处结束-------/ 
   }]
  },

然后说下自己查资料研究的cli3下的全局变量注入

cli3 与之前的cli不一样了,build和config文件没有了 ,所有的配置都需要在自己新建的vue.config.js文件里进行配置,具体配置官方文档和各种资料都很详细,在这就不详述了,在这就说下自己练手的一些配置,仅供参考,主要看全局变量注入那块,主要用的是style-resources-loader ,npm i style-resources-loader -D

const path = require("path");
function resolve(dir) {
 return path.join(__dirname, dir);
}
module.exports = {
 publicPath: "./",
 outputDir: "dist",
 assetsDir: "assets",
 indexPath: "index.html",
 filenameHashing: true,
 pages: undefined,
 lintOnSave: true,
 runtimeCompiler: false,
 transpileDependencies: [],
 productionSourceMap: false,
 crossorigin: undefined,
 integrity: false,
 devServer: {
 proxy: {
  "/api": {
  target: "************",
  changeOrigin: true,
  pathRewrite: { "^/api": "" }
  }
 }
 },
 // ------------------此处开始,以下是全局变量注入的配置--------------
 chainWebpack: config => {
 config.resolve.alias.set("@assets", resolve("src/assets"))
 // 这里只写了两个个,你可以自己再加,按这种格式.set("", resolve(""))
 const types = ["vue-modules", "vue", "normal-modules", "normal"]
 types.forEach(type =>
  addStyleResource(config.module.rule("less").oneOf(type))
 );
 },
 css: {
 loaderOptions: {
  less: {
  javascriptEnabled: true
  }
 }
 }
};
function addStyleResource(rule) {
 rule
 .use("style-resource")
 .loader("style-resources-loader")
 .options({
  patterns: [
  path.resolve(__dirname, "src/styles/index.less") // 需要全局导入的less
  ]
 })
}

大家一起加油! 如有不对之处,请大家不吝赐教。

之后看到另一个后台管理系统的配置,发现另一种配法 (cli3)

安装less less-loader style-resources-loader

npm install -D less-loader less
npm i style-resources-loader
npm i vue-cli-plugin-style-resources-loader

安装完后,在vue.config.js中配置

const path = require('path');
module.exports = {
 pluginOptions: {
  'style-resources-loader': {
   preProcessor: 'less',
   patterns: [
    // 这个是加上自己的路径,不能使用(如下:alias)中配置的别名路径
    path.resolve(__dirname, './src/style/params.less')
   ]
  }
 },
 ……
 其他配置
 ……
}

安装的时候也可以方法二:直接使用vue add style-resources-loader安装,vue add pluginName 是vue-cli3提供的。

vue add 是用yarn安装插件的, yarn源的问题有可能导致失败。

如果安装失败的话,就上面分别安装的方法来

以上这篇vue-cli4使用全局less文件中的变量配置操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
EasyUI的treegrid组件动态加载数据问题的解决办法
Dec 11 Javascript
jQuery setTimeout()函数使用方法
Apr 07 Javascript
jQuery实现图片信息的浮动显示实例代码
Aug 28 Javascript
jQuery封装的获取Url中的Get参数示例
Nov 26 Javascript
JQuery实现的图文自动轮播效果插件
Jun 19 Javascript
JavaScript节点及列表操作实例小结
Aug 05 Javascript
jQuery简单实现input文本框内灰色提示文本效果的方法
Dec 02 Javascript
Javascript Function.prototype.bind详细分析
Dec 29 Javascript
ajax与json 获取数据并在前台使用简单实例
Jan 19 Javascript
Mac系统下Webstorm快捷键整理大全
May 28 Javascript
Vue.js子组件向父组件通信的方法实例代码详解
Dec 10 Javascript
微信小程序 网络通信实现详解
Jul 23 Javascript
Vue全局使用less样式,组件使用全局样式文件中定义的变量操作
Oct 21 #Javascript
js 图片懒加载的实现
Oct 21 #Javascript
uniapp实现可以左右滑动导航栏
Oct 21 #Javascript
解决vue-loader加载不上的问题
Oct 21 #Javascript
Vue实现返回顶部按钮实例代码
Oct 21 #Javascript
vue将文件/图片批量打包下载zip的教程
Oct 21 #Javascript
uniapp实现可滑动选项卡
Oct 21 #Javascript
You might like
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
2011/11/07 PHP
基于php上传图片重命名的6种解决方法的详细介绍
2013/04/28 PHP
php中ltrim()、rtrim()与trim()删除字符空格实例
2014/11/25 PHP
解读PHP中的垃圾回收机制
2015/08/10 PHP
thinkPHP自动验证机制详解
2016/12/05 PHP
php封装json通信接口详解及实例
2017/03/07 PHP
浅析Javascript匿名函数与自执行函数
2016/02/06 Javascript
全面详细的jQuery常见开发技巧手册
2016/02/21 Javascript
JS中artdialog弹出框控件之提交表单思路详解
2016/04/18 Javascript
浅谈JavaScript中变量和函数声明的提升
2016/08/09 Javascript
浅析JavaScript函数的调用模式
2016/08/10 Javascript
常用jQuery选择器汇总
2017/02/02 Javascript
详解vue2.0脚手架的webpack 配置文件分析
2017/05/27 Javascript
vue自定义指令directive实例详解
2018/01/17 Javascript
React从react-router路由上做登陆验证控制的方法
2018/05/10 Javascript
layui 实现表格某一列显示图标
2019/09/19 Javascript
js实现无刷新监听URL的变化示例代码详解
2020/06/03 Javascript
JS+JQuery实现无缝连接轮播图
2020/12/30 jQuery
Python基础入门之seed()方法的使用
2015/05/15 Python
用pyqt5 给按钮设置图标和css样式的方法
2019/06/24 Python
python实现WebSocket服务端过程解析
2019/10/18 Python
Django-rest-framework中过滤器的定制实例
2020/04/01 Python
30行Python代码实现高分辨率图像导航的方法
2020/05/22 Python
Python依赖包迁移到断网环境操作
2020/07/13 Python
Python 使用office365邮箱的示例
2020/10/29 Python
HTML5中的autofocus(自动聚焦)属性介绍
2014/04/23 HTML / CSS
机械工程师的岗位职责
2013/11/17 职场文书
婚礼主持词
2014/03/13 职场文书
4s店市场专员岗位职责
2014/04/09 职场文书
心得体会的写法
2014/09/05 职场文书
2014党员民主评议个人思想剖析发言
2014/09/19 职场文书
检讨书范文300字
2015/01/28 职场文书
国庆放假通知怎么写
2015/07/30 职场文书
大学生入党自我鉴定范文
2019/06/21 职场文书
Python内置包对JSON文件数据进行编码和解码
2022/04/12 Python
Nginx配置之禁止指定IP访问
2022/05/02 Servers