在vue中使用less px自动转成rem(px2rem-loader) 并配置公用less文件(不用每个vue文件都引一次)

第一步:安装less

cnpm install less less-loader --save 

接下来找到bulid目录下的webpack.base.conf.js并打开,加上这句话(其实不加也可以)

module: {
    rules: [
        ...
           {
                test: /\.less$/,
                loader: "style-loader!css-loader!less-loader"
            }
        ...
    ]
  },

第二步:安装px2rem-loader lib-flexible  sass-resources-loader

cnpm install px2rem-loader  lib-flexible  sass-resources-loader --save

在main.js里     import 'lib-flexible/flexible.js'

之后,在build文件夹下打开utils.js文件 先找到cssLoaders方法

const px2remLoader = {
     loader: 'px2rem-loader',
         options: {
             remUint: 75
        }
}

将上述代码添加到下图位置(这一步实现px自动转成rem)

然后再复制下面的代码 添加进去(这一步实现公共less文件只引入一次)

  function lessResourceLoader() {
    var loaders = [
      cssLoader,
      px2remLoader,
      'less-loader',
      {
        loader: 'sass-resources-loader',
        options: {
          resources: [
            path.resolve(__dirname, '../src/assets/index.less'),
          ]
        }
      }
    ];

    if (options.extract) {
      return ExtractTextPlugin.extract({
        use: loaders,
        fallback: 'vue-style-loader'
      })
    } else {
      return ['vue-style-loader'].concat(loaders)
    }
  }

注:path.resolve(__dirname, ‘…/src/assets/index.less’)为自己对应的文件路径,不用在main.js引入

…/src/assets/index.less   就是公共less文件,不用在每个vue文件都引入一次就可以直接使用index.less里的变量

复制上面的代码,然后将return 改写

return {
    css: generateLoaders(),
    postcss: generateLoaders(),
    // less: generateLoaders('less'),
    less: lessResourceLoader(),  // 看 在这里
    sass: generateLoaders('sass', { indentedSyntax: true }),
    scss: generateLoaders('sass'),
    stylus: generateLoaders('stylus'),
    styl: generateLoaders('stylus')
  }

 

最后重启(别忘了重启)

在vue组件里可以直接写成px单位

px2remLoader 会自动转成rem

 

 

 

安装lib-flexible    基于vue-cli配置手淘的lib-flexible + rem,实现移动端自适应

安装px2rem-loader    使用 webpack 的 px2rem-loader, 自动将px转换为rem

需要注意的是px2remloader的remUnit属性,填写的是设计稿宽度的十分之一,例如设计稿宽度是750,填写75;如果是375,填写的就是37.5

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值