介绍
如题
用法
给出以下参考用法,当然,高手可以自己随便玩。
Vue、react、angular框架使用步骤参考如下
第一步:
npm install smart-rem -S
第二步:
在入口文件
import smartRem from 'smart-rem'smartRem(Arguments)
注释: Arguments参数是设计稿的整个尺寸宽度,如果设计稿的尺寸宽度是750px,那么参数就是750(不带px),如下:
smartRem(750)
注意vue2.x已经内置了对postcss的支持,所以,如果在根目录有.postcssrc.js文件,直接在此文件添加一行”postcss-auto-rem”:{},然后npm install -D postcss-auto-rem 即可,下面第三步和第四步都不用看了。如果其它框架有变动,亦可酌情处理哦。
第三步:
安装依赖postcss postcss-auto-rem
npm install --save-dev postcss postcss-auto-rem
第四步:
修改css相关rules配置
如果是Webpack,在webpack.config.js中使用postcss-loader:
module.exports = {module: {rules: [{test: /\.css$/,exclude: /node_modules/,use: [{loader: 'style-loader',},{loader: 'css-loader',options: {importLoaders: 1,}},{loader: 'postcss-loader'}]}]}}
如果是CSS-in-JS,在jsx中使用postcss最好的方式是使用astroturf,添加到你的webpack.config.js中。
module.exports = {module: {rules: [{test: /\.css$/,use: ['style-loader', 'postcss-loader'],},{test: /\.jsx?$/,use: ['babel-loader', 'astroturf/loader'],}]}}
第五步:
检查你的项目是否存在postcss配置文件,一般位于根目录。
如果没有postcss的相关配置文件,则可以手动创建一个postcss.config.js,在plugins中,添加require(postcss-auto-rem)
module.exports = {plugins: [+ require('postcss-auto-rem'),require('autoprefixer')]}
如果你使用parcel打包,而非webpack,那么parcel内置了postcss,你只需在根目录创建postcss.config.js,添加如代码
Nuxt框架,使用可参考如下
可在nuxt.config.js中的head部分做添加
head: {// ** 开始添加script: [{innerHTML: require('smart-rem') + 'smartRem(Arguments)',type: 'text/javascript',charset: 'utf-8'}],__dangerouslyDisableSanitizers: ['script']// ** 结束添加},
Next 框架使用可参考如下
根目录下创建文件pages/_document.js,在render中添加script脚本
// _document is only rendered on the server side and not on the client side// Event handlers like onClick can't be added to this file// ./pages/_document.jsimport Document, { Head, Main, NextScript } from 'next/document'export default class MyDocument extends Document {static async getInitialProps(ctx) {const initialProps = await Document.getInitialProps(ctx)return { ...initialProps }}render() {return (<html><Head><style>{`body { margin: 0 } /* custom! */`}</style>// **开始添加<script dangerouslySetInnerHTML={{__html: require('smart-rem') + 'smartRem(Arguments)'}}></script>// ** 结束添加</Head><body className="custom_class"><Main /><NextScript /></body></html>)}}
其它步骤参考最上面第一步到第四步。
Node Api用法参考如下
var fs = require('fs');var postcss = require('postcss');var postcssAutoRem = require('postcss-auto-rem');var css = fs.readFileSync('main.css', 'utf8');var processedCss = postcss(postcssAutoRem()).process(css).css;fs.writeFile('auto-rem.css', processedCss, function (err) {if (err) {throw err;}console.log('file written.');});
gulp用法参考如下
var gulp = require('gulp');var postcss = require('gulp-postcss');var autoprefixer = require('autoprefixer');var postcssAutoRem = require('postcss-auto-rem');gulp.task('css', function () {var processors = [autoprefixer({browsers: 'last 1 version'}),postcssAutoRem()];return gulp.src(['build/css/**/*.css']).pipe(postcss(processors)).pipe(gulp.dest('build/css'));});
