详解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 相关文章推荐
JQuery DataTable删除行后的页面更新利用Ajax解决
May 17 Javascript
JS简单实现文件上传实例代码(无需插件)
Nov 15 Javascript
nodeType属性返回被选节点的节点类型介绍
Nov 22 Javascript
删除Javascript Object中间的key
Nov 18 Javascript
jQuery实现非常实用漂亮的select下拉菜单选择效果
Nov 06 Javascript
Bootstrap每天必学之简单入门
Nov 19 Javascript
高性能JavaScript循环语句和条件语句
Jan 20 Javascript
js操作数据库实现注册和登陆的简单实例
May 26 Javascript
js重写方法的简单实现
Jul 10 Javascript
BootStrap表单宽度设置方法
Mar 10 Javascript
基于node.js实现爬虫的讲解
Feb 18 Javascript
vue解决花括号数据绑定不成功的问题
Oct 30 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设计模式 Prototype (原型模式)代码
2011/06/26 PHP
PHP中数组的三种排序方法分享
2012/05/07 PHP
常见的四种POST 提交数据方式(小总结)
2015/10/08 PHP
Thinkphp和onethink实现微信支付插件
2016/04/13 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
2016/11/25 PHP
初窥JQuery-Jquery简介 入门了解篇
2010/11/25 Javascript
jquery ready函数、css函数及text()使用示例
2013/09/27 Javascript
Extjs4中Form的使用之本地hiddenfield
2013/11/26 Javascript
实现无刷新联动例子汇总
2015/05/20 Javascript
jQuery获取radio选中项的值实例
2016/06/18 Javascript
js防阻塞加载的实现方法
2016/09/09 Javascript
Bootstrap的modal拖动效果
2016/12/25 Javascript
原生js实现旋转木马轮播图效果
2017/02/27 Javascript
简单好用的nodejs 爬虫框架分享
2017/03/26 NodeJs
webpack踩坑之路图片的路径与打包
2017/09/05 Javascript
Vue-CLI 3.X 部署项目至生产服务器的方法
2019/03/22 Javascript
vue项目引入ts步骤(小结)
2019/10/31 Javascript
关于vue.js中实现方法内某些代码延时执行
2019/11/14 Javascript
javascript canvas检测小球碰撞
2020/04/17 Javascript
Python用Pillow(PIL)进行简单的图像操作方法
2017/07/07 Python
Python模块结构与布局操作方法实例分析
2017/07/24 Python
python实现批量视频分帧、保存视频帧
2019/05/31 Python
Python面向对象之类的封装操作示例
2019/06/08 Python
python获取array中指定元素的示例
2019/11/26 Python
在Pytorch中计算自己模型的FLOPs方式
2019/12/30 Python
Python HTTP下载文件并显示下载进度条功能的实现
2020/04/02 Python
HTML 5 input placeholder 属性如何完美兼任ie
2014/05/12 HTML / CSS
Stuart Weitzman欧盟:美国奢华鞋履品牌
2017/05/24 全球购物
美国林业供应商:Forestry Suppliers
2019/05/01 全球购物
Jones New York官网:美国女装品牌,受白领女性欢迎
2019/11/26 全球购物
给全校老师的建议书
2014/03/13 职场文书
学校运动会广播稿100条
2014/09/14 职场文书
防灾减灾标语
2014/10/07 职场文书
大学校园餐饮创业计划书
2019/08/07 职场文书
springboot 自定义配置 解决Boolean属性不生效
2022/03/18 Java/Android
使用CSS定位HTML元素的实现方法
2022/07/07 HTML / CSS