Home  >  Article  >  Web Front-end  >  Detailed explanation of Vue-cli webpack mobile terminal automatic build rem problem

Detailed explanation of Vue-cli webpack mobile terminal automatic build rem problem

亚连
亚连Original
2018-05-26 14:04:221418browse

This article mainly introduces the detailed explanation of Vue-cli webpack mobile terminal automatic construction rem problem. Now I will share it with you and give you a reference.

I believe that many friends think that their mobile projects can be automatically converted to rem, which is in line with the front-end trend. It is very inconvenient and error-prone to make changes by handwriting or editor plug-ins. I am online After searching a lot of methods, I found the following problems:

1 I followed the old video tutorial and found that the various plug-in versions of node npm webpack px2rem are different and useless at all

2 The tutorials on the Internet were lacking and incomplete, and it took me a long time to figure it out. I thought about manually setting the cssrem settings of vscode, but I was still not convinced, so I pieced together everything and finally got it. , and finally worked out the following method, which I hope will be helpful to everyone in automating the construction of rem for mobile terminals

1 I won’t go into detail about installing vue-cli, everyone should know it

2 Install and configure px2rem-loader (I didn’t use postcss here. I tried many problems but decided to use this one)

Step one: npm install px2rem-loader

Part 2: Add objects under webpack.base.conf.js. Here I use sass. If you use other ones, just follow the following rules. I believe everyone can understand it

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

The third step: Add something to the plugins under webpack.dev.conf.js. You must pay attention to the remUnit attribute, which is 40px in the case of Apple 5. I set it to 40 here, and there are also People set it as 80, my 40 here is to match the use of hotcss. I will talk about it below

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

The fourth part: Many people don’t know this Yes, many people just miss this step. Find const cssLoader under utils.js and add ?importLoaders=1

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

The installation is complete now

Input font-size:40px

Output font-size:1rem (under iphone)

3 We all know that the pixel ratio of devices is different , so we use hotcss to adjust the pixel ratio link of the device

I put it in src/assets/js/, and you can introduce the method according to your habits

You can define any name. Here I changed hotcss.js to viewport.js

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

The above is what I compiled for everyone. I hope it will be helpful to everyone in the future. help.

Related articles:

Ajax method of reading properties resource file data

Ajax method to achieve regular update of a page block Content method

Ajax method to obtain response content length

##

The above is the detailed content of Detailed explanation of Vue-cli webpack mobile terminal automatic build rem problem. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn