详解Vue-cli webpack移动端自动化构建rem问题


Posted in Javascript onApril 07, 2018

相信很多小伙伴想着自己的移动端项目能够自动转换为rem,这才符合前端的潮流,如果用自己手写或者编辑器插件来改动十分不方便还容易出错,我在网上找了很多的方法发现以下问题:

1 照着老的视频教程去弄,发现node npm webpack px2rem的各种插件版本都不一样,根本没用

2 网上的教程缺斤少俩,不完整,搞得我整了半天搞不定,想想干脆手动vscode 的cssrem设置算了,但老子还是不服气,东拼西凑还是整出来了,最后还是研究出了以下方法希望对大家的移动端自动化构建rem有帮助

1 安装vue-cli这个就不多说了,大家都应该会

2 安装和配置px2rem-loader(这里没有用postcss试过了很多问题还是决定用这个)

第一步 :npm install px2rem-loader

第二部 : webpack.base.conf.js下添加对象,这里我用的是sass,用其他的按照下面规律改就行了,相信都看得懂

module.exports={
module: {
  rules: [
   {
    test: /\.(css|less|scss)(\?.*)?$/,
    loader: 'style-loader!css-loader!sass-loader!less-loader!postcss-loader'
   }
  ]
 }
}

第三步 : webpack.dev.conf.js下的plugins添加一个东西,大家一定要注意remUnit这个属性,就是在苹果5情况下为40px,我这里定为40,也有人定为80,我这里40是为了配合hotcss使用下面我会讲到

plugins: [
  new webpack.LoaderOptionsPlugin({
   // webpack 2.0之后, 此配置不能直接写在自定义配置项中, 必须写在此处
   vue: {
    postcss: [require('postcss-px2rem')({ remUnit: 40, propWhiteList: [] })]
   }
  }
 ]

第四部 : 这是多人不知道的,很多人就是差这一步,utils.js下找到const cssLoader加上?importLoaders=1

const cssLoader = {
  loader: 'css-loader?importLoaders=1',
  options: {
   minimize: process.env.NODE_ENV === 'production',
   sourceMap: options.sourceMap
  }
 }

到这里为止安装就完成了

输入font-size:40px

输出font-size:1rem (在iphone下)

3 我们都知道设备的像素比不一样的,所以我们用hotcss来调整设备的像素比 链接

我放在了src/assets/js/里面大家可根据习惯来

引入方法,自己定义什么名字都行,这里我吧hotcss.js改为了viewport.js

module.exports = {
 entry: {
  app: './src/main.js',
  rem: './src/assets/js/viewport.js'
 }
}

这样就大功告成啦

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

Javascript 相关文章推荐
javascript 异常处理使用总结
Jun 21 Javascript
jQuery学习2 选择器的使用说明
Feb 07 Javascript
javascript变量作用域使用中常见错误总结
Mar 26 Javascript
js清空form表单中的内容示例
May 20 Javascript
使用FlexiGrid实现Extjs表格效果方法分享
Dec 16 Javascript
jQuery事件绑定on()、bind()与delegate() 方法详解
Jun 03 Javascript
jQuery菜单插件用法实例
Jul 25 Javascript
Webwork 实现文件上传下载代码详解
Feb 02 Javascript
jQuery对象的链式操作用法分析
May 10 Javascript
VueJs 将接口用webpack代理到本地的方法
Nov 27 Javascript
浅谈React Native Flexbox布局(小结)
Jan 08 Javascript
Vue数字输入框组件的使用方法
Oct 19 Javascript
vue-cli开发环境实现跨域请求的方法
Apr 07 #Javascript
Angular5给组件本身的标签添加样式class的方法
Apr 07 #Javascript
Vue实现内部组件轮播切换效果的示例代码
Apr 07 #Javascript
Javascript实现运算符重载详解
Apr 07 #Javascript
Vue中使用Sortable的示例代码
Apr 07 #Javascript
JavaScript实现简单动态进度条效果
Apr 06 #Javascript
js+css实现打字效果
Jun 24 #Javascript
You might like
php Static关键字实用方法
2010/06/04 PHP
php数组索引的Key加引号和不加引号的区别
2014/08/19 PHP
php传值赋值和传地址赋值用法实例分析
2015/06/20 PHP
PHP图像裁剪缩略裁切类源码及使用方法
2016/01/07 PHP
php转换上传word文件为PDF的方法【基于COM组件】
2019/06/10 PHP
Js 获取HTML DOM节点元素的方法小结
2009/04/24 Javascript
33个优秀的jQuery 教程分享(幻灯片、动画菜单)
2011/07/08 Javascript
使用jquery操作session方法分享
2015/01/22 Javascript
jquery实现隐藏在左侧的弹性弹出菜单效果
2015/09/18 Javascript
jQuery Easyui使用(二)之可折叠面板动态加载无效果的解决方法
2016/08/17 Javascript
Vuejs第十篇之vuejs父子组件通信
2016/09/06 Javascript
关于JavaScript中forEach和each用法浅析
2017/07/27 Javascript
微信小程序progress组件使用详解
2018/01/31 Javascript
详解Vue-cli webpack移动端自动化构建rem问题
2018/04/07 Javascript
JS实现获取word文档内容并输出显示到html页面示例
2018/06/23 Javascript
JavaScript实现图片放大镜效果
2019/06/27 Javascript
node.js使用yargs处理命令行参数操作示例
2020/02/11 Javascript
[01:32]TI奖金增速竟因它再创新高!DOTA2勇士令状不朽珍藏Ⅰ饰品欣赏
2018/05/18 DOTA
[57:22]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第五场
2018/04/10 DOTA
Python 字符串中的字符倒转
2008/09/06 Python
python中模块的__all__属性详解
2017/10/26 Python
Python Unittest根据不同测试环境跳过用例的方法
2018/12/16 Python
Python+Selenium使用Page Object实现页面自动化测试
2019/07/14 Python
python实现淘宝购物系统
2019/10/25 Python
详解Python IO口多路复用
2020/06/17 Python
HTML5地理定位_动力节点Java学院整理
2017/07/12 HTML / CSS
英国儿童家具专卖店:GLTC
2016/09/24 全球购物
英国时尚配饰、珠宝和服装网站:KJ Beckett
2020/01/23 全球购物
分布式数据库需要考虑哪些问题
2013/12/08 面试题
什么是网络协议
2016/04/07 面试题
内部类的定义、种类以及优点
2013/10/16 面试题
端午节活动策划方案
2014/03/09 职场文书
股东授权委托书
2014/10/15 职场文书
2015年消费者权益日活动总结
2015/02/09 职场文书
MySQL中VARCHAR与CHAR格式数据的区别
2021/05/26 MySQL
C#连接ORACLE出现乱码问题的解决方法
2021/10/05 Oracle