Skip to content

getLocalIdent pass selector type #1540

Closed
@koga73

Description

@koga73

Feature Proposal

I propose that we update the getLocalIdent parameters to pass whether the localName selector is an id or class.

Currently you can pass a custom function for getLocalIdent however there is no way to determine whether the localName parameter is an id or class.

Upon examining the Utils.js file it utilizes "postcss-modules-scope" package and passes a "generateScopedName" function. This function passes (exportName, resourceFile, rawCss) parameters. Currently css-loader only makes use of the exportName parameter. Using the rawCss parameter we can determine if the exportName is an id or class and pass this info to the getLocalIdent function.

Feature Use Case

I would like the ability to only transform class names and not transform id. This is because keeping the original id is useful for anchoring (href="#section1") as well as code that rely on finding elements by id (automated tests, analytics, vanilla js, etc).

Please paste the results of npx webpack-cli info here, and mention other relevant info

  System:
    OS: Windows 10 10.0.19042
    CPU: (32) x64 AMD Ryzen 9 5950X 16-Core Processor
    Memory: 50.14 GB / 63.90 GB
  Binaries:
    Node: 18.16.0 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.19 - C:\Program Files\nodejs\yarn.CMD
    npm: 9.5.1 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Chrome: 116.0.5845.188
    Edge: Spartan (44.19041.423.0), Chromium (117.0.2045.41)
    Internet Explorer: 11.0.19041.1
  Packages:
    babel-loader: 8.2.2 => 8.2.2
    copy-webpack-plugin: 9.0.1 => 9.0.1
    css-loader: 5.0.1 => 5.0.1
    dotenv-webpack: 6.0.0 => 6.0.0
    html-webpack-plugin: 5.5.3 => 5.5.3
    sass-loader: 13.2.2 => 13.2.2
    string-replace-loader: 3.1.0 => 3.1.0
    webpack: 5.88.1 => 5.88.1
    webpack-cli: 5.1.4 => 5.1.4
    webpack-dev-server: 4.15.1 => 4.15.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions