npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

bad-css-loader

v1.0.5

Published

查找入侵式的第三发css样式

Readme

bad-css-loader

查找第三方css入侵式样式的webpack loader

你是否遇到过下面这种情况

// 第三方组件库中,css入侵
* {
  margin: 0;
  box-sizing: border-box;
}
body {
  overflow: hidden;
}
....

这个loader就是为了查找css中,是否存在全局元素样式有影响的css选择器。找到它,然后进行告警

不建议在构建时使用,可以在开发阶段添加

使用方法

··· // webpack config
{
  test: /\.css$/,
  use: [
    ... // 在css-loader之前调用
    {
      loader: 'bad-css-loader',
      options: {
        enable: true,
        include: /node_module/,
        exclude: /src/,
      },
    }
    ...
  ],
}
{
  test: /\.less$/,
  use: [
    'style-loader',
    'css-loader', // 在css-loader之前调用, less-loader之后
    'bad-css-loader',
    'less-loader',
  ],
},
{
  test: /\.s(c|a)ss/,
  use: [
    'style-loader',
    'css-loader', // 在css-loader之前调用,sass-loader之后
    'bad-css-loader',
    'sass-loader'
  ],
},
···

提示优化

bad-css-loader借用webpack直接输出warning,这样用户容易忽视这个提示。现增加自定义提示 使用方法

const { BadCssLog } = require('bad-css-loader');
// ...webpack config
{
  plugins: [
      ...otherPlugin
      new BadCssLog(),
    ],
}

options |属性|类型|默认值|备注 |--|--|--|--| |enable|boolean|true|是否启动loader |include|string/regexp|''|需要loader检测的路径,不传则是全部 |exclude|string/regexp|''|不需要loader检测的路径

TODO

  • [ ] 1. 增加一个更多入侵式css选择器的正则匹配
  • [ ] 2. 目前只检测了最外层级的css选择器,是否需要多验证全部层级(考虑中)
  • [x] 3. 只验证过css。less,scss需要在验证(已支持css,less,scss)
  • [ ] 4. 提示自定义话

开发

npm run dev

构建

npm run build

调试

cd /path/bad-css-loader
npm link
cd /path/project
npm link bad-css-loader