移动端适配方案

  • rem
  • 媒体查询
  • vw,vh(安装postcss-px-to-viewport插件后进行简单配置就可以在页面直接使用px单位,项目编译后自动转换为对应的vw或vh属性)

npm install postcss-loader autoprefixer postcss-px-to-viewport --save
以375px分辨率为例,100vw=375px,是宽度1%,1vm=3.75px

#app{
	font-size: 18px;
	color: #FFA500;
	border: 1px dashed #4169E1;
}
.ignore{
	color: antiquewhite;
	font-size: 8px;
}
@media only screen and (min-width: 100px) and (max-width: 640px) {
	#app{
		font-size: 18px;
		color: #FFA500;
		border: 1px dashed #4169E1;
	}
	.ignore{
		color: antiquewhite;
		font-size: 8px;
	}
}
const path=require('path');
const webpack=require('webpack');
const HtmlWebpackPlugin=require('html-webpack-plugin');
const ExtractTextWebpackPlugin=require('extract-text-webpack-plugin');//npm install extract-text-webpack-plugin@next --save
const optimizeCss = require('optimize-css-assets-webpack-plugin');

module.exports={
  entry:{
    'app':'./entry/app-css.js',
  },
  output:{
    path: path.resolve(__dirname, "output"),
    filename: "[name].bundle.js",
    chunkFilename: "[name].chunk.js"
  },
  module:{
    rules:[
      {
        test:/\.js?$/,
        exclude:/(node_modules)/,
        loader:'babel-loader'
      },
      {
        test:/\.css?$/,
        exclude:/(node_modules)/,
        loaders:ExtractTextWebpackPlugin.extract({
          //转换.css文件需要使用的Loader
          use:[
            {
              loader:'css-loader'
            },
            {
              loader:'postcss-loader',
              options: {
		    	plugins: ()=>[
		        	require('autoprefixer')({
		        		browsers: ['last 5 versions']
		        	}),
		        	require('postcss-px-to-viewport')({
			        		viewportWidth: 375,
			        		viewportHeight: 1334,
			        		unitPrecision: 3,
			        		viewportUnit: 'vw',
			        		selectorBlackList: ['.ignore', '.hairlines'],
			                minPixelValue: 1,
			                mediaQuery: false
		        		})
		    		]
				}
            }
          ]
        }),
      }
    ]
  },
  plugins:[
    new HtmlWebpackPlugin({
      template:'./index.html'
    }),
    new ExtractTextWebpackPlugin({
      filename: '[name].min.css',
    }),
  ],
  devServer: {
    //contentBase:path.join(__dirname,'./release'),
    open:true,//自动打开浏览器
    port:9001,
    disableHostCheck: true
  }
}

/*
viewportWidth: 750,   // 视窗的宽度,对应的是我们设计稿的宽度,一般是750
viewportHeight: 1334, // 视窗的高度,根据750设备的宽度来指定,一般指定1334,也可以不配置
unitPrecision: 3,     // 指定`px`转换为视窗单位值的小数位数
viewportUnit: "vw",   //指定需要转换成的视窗单位,建议使用vw
selectorBlackList: ['.ignore', '.hairlines'],// 指定不转换为视窗单位的类,可以自定义,可以无限添加,建议定义一至两个通用的类名
minPixelValue: 1,     // 小于或等于`1px`不转换为视窗单位,你也可以设置为你想要的值
mediaQuery: false     // 允许在媒体查询中转换`px`
*/
{
  "name": "webpackhigh",
  "version": "1.0.0",
  "description": "",
  "main": "webpack.config-es6.js",
  "dependencies": {
    "autoprefixer": "^9.6.1",
    "awesome-typescript-loader": "^5.2.1",
    "babel-core": "^6.26.0",
    "babel-loader": "^7.1.2",
    "babel-plugin-transform-runtime": "^6.23.0",
    "babel-polyfill": "^6.26.0",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-latest": "^6.24.1",
    "babel-preset-stage-0": "^6.24.1",
    "babel-runtime": "^6.26.0",
    "clean-webpack-plugin": "^1.0.0",
    "css-loader": "^2.1.0",
    "cssnano": "^4.1.8",
    "express": "^4.16.4",
    "extract-text-webpack-plugin": "^4.0.0-beta.0",
    "file-loader": "^3.0.1",
    "html-loader": "^0.5.5",
    "html-webpack-inline-chunk-plugin": "^1.1.1",
    "html-webpack-plugin": "^3.2.0",
    "img-loader": "^3.0.1",
    "imports-loader": "^0.8.0",
    "jquery": "^3.3.1",
    "less": "^3.9.0",
    "less-loader": "^4.1.0",
    "lodash": "^4.17.11",
    "mini-css-extract-plugin": "^0.5.0",
    "node-sass": "^4.11.0",
    "optimize-css-assets-webpack-plugin": "^5.0.1",
    "path": "^0.12.7",
    "postcss": "^7.0.7",
    "postcss-cssnext": "^3.1.0",
    "postcss-loader": "^3.0.0",
    "postcss-px-to-viewport": "^1.1.1",
    "postcss-sprites": "^4.2.1",
    "request": "^2.88.0",
    "sass-loader": "^7.1.0",
    "style-loader": "^0.23.1",
    "ts-loader": "^5.3.2",
    "typescript": "^3.2.2",
    "uglifyjs-webpack-plugin": "^2.1.1",
    "url-loader": "^1.1.2",
    "webpack": "^4.28.3",
    "webpack-bundle-analyzer": "^3.0.3",
    "webpack-cli": "^3.1.2",
    "webpack-dev-server": "^3.1.14",
    "webpack-merge": "^4.2.1"
  },
  "devDependencies": {
    "http-proxy-middleware": "^0.19.1"
  },
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "server": "webpack-dev-server --env development --mode development  --config ./webpack-css.js",
    "build": "webpack --config ./webpack-css.js --mode production --env production"
  },
  "author": "",
  "license": "ISC"
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值