亲测有效,大家可以试试。

使用的是vue-cli搭建的webpack项目,然后按步骤一步一步走下去就成功了

1.终端中输入

1
npm i lib-flexible --save

2.终端中输入

1
npm i px2rem-loader --save-dev

3.在项目入口文件 main.js 里 引入 lib-flexible

1
import 'lib-flexible'

4.在项目根目录的 index.html 中添加如下 meta

1
<meta name="viewport" content="width=device-width, initial-scale=1.0">

5.在build文件夹下的util.js中添加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// utils.js
var cssLoader = {
loader: 'css-loader',
options: {
minimize: process.env.NODE_ENV === 'production',
sourceMap: options.sourceMap
}
}
var px2remLoader = {
loader: 'px2rem-loader',
options: {
remUnit: 75
}
}

并放进generateLoaders函数的 loaders 数组中

1
2
3
function generateLoaders(loader, loaderOptions) {
var loaders = [cssLoader, px2remLoader]
}

6.重新在终端中输入 npm run dev 即可

PS:以上实现转换适用于:

(1)组件中编写的下的css

(2)从index.js或者main.js中import ‘../../static/css/reset.css’引入css

(3)在组件的<script type=”text/ecmascript-6″> import ‘../../static/css/reset.css’中引入css

另外的情况不适用:

(1)组件中@import “../../static/css/reset.css (可考虑上面(2)、(3)的形式引入)

(2)外部样式:<link rel=”stylesheet” href=”static/css/reset.css”>

(3)元素内部样式:style=”height: 417px; width: 550px;”

补充另外我要补充的是:在做移动端适配的时候我们不建议给字体也设置rem的单位,针对这种情况,我为字体适配的解决方案是使用媒体查询,文件以组件中@import “../../static/css/reset.css形式引入,可完美解决移动端适配问题

更多详情请戳 传送门