// rem2rpx.js
// rem -> rpx
const loaderUtils = require('loader-utils');
module.exports = function(source){
const options = loaderUtils.getOptions(this);
const reg = /(\d?\.?\d+)(rem)/g;
source = source.replace(reg,function($0,$1,$2){
return $1 * (options.ratio || 100) + 'rpx';
})
return source;
}
// vue.config.js
const isDev = process.env.NODE_ENV !== 'production';
const path = require('path');
function resolve (dir) {
return path.join(__dirname, dir)
}
module.exports = {
configureWebpack: {
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
'vue': 'uni',
'@': resolve('src'),
'-@': resolve('src/static'),
},
},
},
chainWebpack: config => {
config.module
.rule('rem2rpx')
.test(/\.(vue|less)$/)
.use()
.loader(resolve('/rem2rpx.js'))
.options({ratio:100})
.end();
}
};