New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

pxtorem-webpack-plugin

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pxtorem-webpack-plugin

Generate rem for stylesheet and inject auto calculate scripts

  • 0.2.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
13
increased by1200%
Maintainers
1
Weekly downloads
 
Created
Source

pxtorem-webpack-plugin

Downloads Version

A webpack plugin for generating rem for stylesheet and inject auto calculate scripts.

Install

npm install pxtorem-webpack-plugin --save-dev

Usage

This plugin should be used with html-webpack-plugin

const HtmlWebpackPlugin = require('html-webpack-plugin');
const PxtoremWebpackPlugin = require('pxtorem-webpack-plugin');

module.exports = {
  // ...
  plugins: [
    new HtmlWebpackPlugin({
      filename: 'index.html',
      template: './index.html',
    }),
    new PxtoremWebpackPlugin({
      // 
      templates: [
        'index.html'
      ],
      baseWidth: 750,
      baseDpr: 2,
      remUnit: 10,
    }),
  ],
  // ...
}

This will generate a file dist/index.html containing the following:

<!DOCTYPE html>
<html lang="en">
<head>
  <script>!function(e,t){var n=e.documentElement,i="orientationchange"in window?"orientationchange":"resize",d=function(){var e=n.clientWidth;n.style.fontSize=e/750*10+"px",n.setAttribute("data-dpr",Math.floor(window.devicePixelRatio))};d(),e.addEventListener&&t.addEventListener(i,d,!1)}(document,window);</script>
  <meta charset="UTF-8">
  <title>Vue webpack demo</title>
</head>
<body>
  <div id="app"></div>
<script type="text/javascript" src="build.js"></script></body>
</html>

Options

You can pass a hash of configuration options to html-webpack-plugin. Allowed values are as follows:

NameTypeDefaultDescription
templates{Array}[]The html files need to inject rem calculation scripts
baseWidth{Number}750The base width for UI design
baseDpr{Number}2base device pixel ratio
remUnit{Number}75rem unit value

Features

  • Auto convert px to rem unit depends on customize base configuration.
  • Inject script into template for auto calculating html root font-size

Below is the source code for injected scripts:

(function (doc, win) {
  var docEl = doc.documentElement
  var resizeEvent = 'orientationchange' in window ? 'orientationchange' : 'resize'
  var recalcFun = function () {
    var clientWidth = docEl.clientWidth
    // baseWidth will be replace by `options.baseWidth`
    // remUnit will be replace by `options.remUnit`
    docEl.style.fontSize = remUnit * (clientWidth / baseWidth) + 'px'
    // for dpr=2.xx -> 2, dpr=3.xx -> 3
    docEl.setAttribute('data-dpr', Math.floor(window.devicePixelRatio))
  }
  recalcFun()
  if (!doc.addEventListener) return
  win.addEventListener(resizeEvent, recalcFun, false)
})(document, window)

If you want calculate px to rem more customized, and want to change the convert rules, you can refer to px2rem.scss

License

MIT

Keywords

FAQs

Package last updated on 21 Mar 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc