ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Vue CLI3 移动端适配 【px2rem 或 postcss-plugin-px2rem】

2020-04-27 12:04:32  阅读:211  来源: 互联网

标签:Vue plugin px2rem 适配 vue postcss


Vue CLI3 移动端适配 【px2rem 或 postcss-plugin-px2rem】

今天,我们使用Vue CLI3 做一个移动端适配 。

在这里插入图片描述

 

前言

首先确定你的项目是Vue CLI3版本以上的。

一、移动端适配包

1、安装移动端适配包

npm i lib-flexible -S

2、在main.js引入适配包

import Vue from 'vue'
import App from './App.vue'

import 'lib-flexible'  // 引入适配包

Vue.config.productionTip = false

new Vue({
  render: h => h(App),
}).$mount('#app')

3、在index.html编辑viewport

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <!-- 加上以下代码 -->
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">   
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <title><%= htmlWebpackPlugin.options.title %></title>
  </head>
  <body>
    <noscript>
      <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
    </noscript>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>

二、CSS样式适配

1、安装px2rem-loader包(只适用于css样式)

npm i px2rem-loader -D

2、在vue.config.js配置

module.exports={
	    chainWebpack: config => {
        config.module
        .rule('css')
          .test(/\.css$/)
          .oneOf('vue')
          .resourceQuery(/\?vue/)
          .use('px2rem')
            .loader('px2rem-loader')
            .options({
              remUnit: 75
            })
    },
}

三、CSS预处理语言样式适配

1、安装postcss-plugin-px2rem(适用于css预处理语言)

npm i postcss-plugin-px2rem -D

2、在vue.config.js配置

module.exports={
	   css: {
      loaderOptions: {
        postcss: {
          plugins: [
              require('postcss-plugin-px2rem')({
                  rootValue: 75, //换算基数, 默认100  ,这样的话把根标签的字体规定为1rem为50px,这样就可以从设计稿上量出多少个px直接在代码中写多上px了。
                  // unitPrecision: 5, //允许REM单位增长到的十进制数字。
                  //propWhiteList: [],  //默认值是一个空数组,这意味着禁用白名单并启用所有属性。
                  // propBlackList: [], //黑名单
                  exclude: /(node_module)/, //默认false,可以(reg)利用正则表达式排除某些文件夹的方法,例如/(node_module)\/如果想把前端UI框架内的px也转换成rem,请把此属性设为默认值
                  // selectorBlackList: [], //要忽略并保留为px的选择器
                  // ignoreIdentifier: false,  //(boolean/string)忽略单个属性的方法,启用ignoreidentifier后,replace将自动设置为true。
                  // replace: true, // (布尔值)替换包含REM的规则,而不是添加回退。
                  mediaQuery: false, //(布尔值)允许在媒体查询中转换px。
                  minPixelValue: 3 //设置要替换的最小像素值(3px会被转rem)。 默认 0
              }),
          ]
      }
    }
    }
}

3、在package.json配置,加入postcss 相关插件

{
  "name": "app",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  },
  "dependencies": {
    "core-js": "^3.6.4",
    "lib-flexible": "^0.3.2",
    "vue": "^2.6.11"
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "~4.3.0",
    "@vue/cli-plugin-eslint": "~4.3.0",
    "@vue/cli-service": "~4.3.0",
    "babel-eslint": "^10.1.0",
    "eslint": "^6.7.2",
    "eslint-plugin-vue": "^6.2.2",
    "node-sass": "^4.14.0",
    "postcss-plugin-px2rem": "^0.8.1",
    "px2rem-loader": "^0.1.9",
    "sass-loader": "^8.0.2",
    "vue-template-compiler": "^2.6.11"
  },
  "postcss": {
    "plugins": {
      "autoprefixer": {},
      "precss": {}
    }
  }
}

标签:Vue,plugin,px2rem,适配,vue,postcss
来源: https://www.cnblogs.com/T888888/p/12785736.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有