通过 css-loader 3.4.2 中的 localsConvention 将 kebab-case 转换为camelCase 不起作用

2024-01-06

出于测试/学习的目的,我使用的是弹出版本create-react-app 3.4.1附带css-loader 3.4.2,我正在尝试重现这些结果 https://github.com/webpack-contrib/css-loader#namedexport其中 css 选择器以短横线大小写编写,但 js 样式对象将它们转换为驼峰命名法:

样式.css

.foo-baz {
  color: red;
}
.bar {
  color: blue;
}

index.js

import styles from './styles.css';

console.log(styles);
// expected result: { fooBaz, bar }
// actual, default results: { foo-baz, bar }

根据 css-loader变更日志 https://openbase.io/js/css-loader/versions#3.0.0在 3.0.0 版本中:

exportLocalsStyle选项已被删除,有利于localsConvention选项,也是只接受{String}值(使用'camelCase'如果您之前的值是true and 'asIs'如果您之前的值是false)

所以我尝试这样做:

webpack.config.js

...
{
  test: cssRegex,
  exclude: cssModuleRegex,
  use: getStyleLoaders({
    importLoaders: 1,
    sourceMap: isEnvProduction && shouldUseSourceMap,
    localsConvention: "camelCase", // my only addition is this line
  }),
  sideEffects: true,
},
...

Running npm start and npm run build两者都成功工作,但是转换没有发生,并且我仍然在 js 文件中使用 kebab-case,即使添加console.log(styles)在我的 App.js 文件中,打印到控制台的输出对象仍然是 kebab-case 键和后续的 kebab-case 值。

我在这里错过了什么吗?也许我很可能对前/后CSS编译过程没有清楚的了解,并且我试图将这个逻辑注入到错误的地方?有没有人有一个使用此 kebab 到 CamelCase 功能的工作示例css-loader 3.*?

旁注:我不想更新css-loader包到它的最新版本,我打算将此信息带回到非弹出的create-react-app然后更新配置craco- 我需要改变的越少越好。


我通过模块部分中的 exportLocalsConvention 解决了这个问题:

{
    loader: 'css-loader',
    options: {
        modules: {
            localIdentName: '[name]_[local]_[hash:base64:6]',
            exportLocalsConvention: 'camelCase'
        }
    }
},
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 css-loader 3.4.2 中的 localsConvention 将 kebab-case 转换为camelCase 不起作用 的相关文章

随机推荐

  • opencv各列之和

    在 Matlab 中 如果 A 是矩阵 则 sum A 将 A 的列视为向量 返回每列和的行向量 总和 图像 用OpenCV怎么能做到呢 Using cvReduce对我有用 例如 如果您需要将矩阵的按列总和存储为行矩阵 您可以这样做 Cv
  • 带有阅读更多内容的网页视图

    Is it possible to specify the number of lines displayed by a web view and to disable its scrolling and to have a read mo
  • Laravel - DecryptException:“MAC 无效”

    在 Laravel 中进行注册时 我使用密码加密算法而不是 Laravel 中内置的 bcrypt 函数 因为要获取密码并在忘记密码时将其发送到邮件 但解密它显示错误 例如 DecryptException The MAC is inval
  • 如果 postgres 有依赖对象,如何删除用户

    数据库 idd 所有者是角色idd owner 数据库有 2 个数据模式 public and firma1 用户可能对此数据库和对象拥有直接或间接分配的权限 用户不是任何对象的所有者 它只授予了权利 如何删除这样的用户 I tried r
  • 如何在 Firebase 中执行以下查询? (多个where条件)[重复]

    这个问题在这里已经有答案了 考虑以下 firebase 结构 users 00 03 aa dc 1c 2b firstName Ofek groupName thailand lastName Ron registration type
  • numpy数组除以向量列

    我有一个 3x3 numpy 数组 我想用 3x1 向量划分该数组的每一列 我知道如何将每一行除以向量的元素 但无法找到划分每一列的解决方案 您可以转置数组以在每一列上进行划分 arr 3x3 T arr 3x1 T
  • WebGL 从浮点渲染目标读取像素

    有一些混乱e g https www khronos org webgl public mailing list archives 1210 msg00090 html就支持水平而言渲染WebGL 中的浮点纹理 OES texture fl
  • 在 Angular 4 的服务中使用 Router

    我已经使用 Angular 2 4 大约一年了 我不断地回到这个困境 将 Router 注入到服务中是否可以被视为一种不好的做法 这是更多的建筑问题 我相信这个问题没有确切的答案 但我想听听你的意见 这里有两个例子 考虑下一个代码 想象一下
  • 使用 EAV 表的“软删除”解决方案是否存在问题?

    我读过一些关于设置一个丑陋的一面的信息deleted at表中的字段表示行已被删除 Namely http richarddingwall name 2009 11 20 the trouble with soft delete http
  • 您的异常消息是否以句点结束? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我见过带句点和不带句点的异常消息 我可以想出一些理由来解释为什么两者都可以很好 如果您愿意 没有点可以让您自由添加或省略句点 如果消息出现在
  • 将 IIS 配置为 Keycloak 的反向代理

    我使用的是Keycloak 2 3 0版本 独立模式 服务器 我为在 localhost 8080 上运行的本地 Keycloak 服务器配置了 IIS URL 重写 问题是 无法在 Keycloak 中指定基本 url 而是 Keyclo
  • RefreshAll 不更新数据透视表

    我有一个模板工作簿 其中有几个连接到sql连接的数据表 以及一些数据透视表 其来源是通过的数据 我的印象是ActiveWorkbook RefreshAll将更新所有连接 然后更新枢轴 事实上 这就是我手动运行刷新时发生的情况 但是 当我运
  • 如何实现欺骗GPS定位ios-app?

    是否可以在 iOS 上实现位置欺骗应用程序 劫持位置服务 不用于调试 如果是 任何提示都会很好 提前致谢 你不能 除非你的 iPhone 已经越狱 否则不可能为 iOS 制作位置欺骗程序 但你可以使用 PC 或 Mac 在不越狱的情况下欺骗
  • SQL更新替换语句

    我需要使用 REPLACE 编写一条 sql 更新语句 该字符串看起来像 SE 88 000000001 我需要替换两个星号 之间的数字 除了要替换的数字始终位于两个星号之间之外 这里没有其他模式 在这种情况下可以使用通配符吗 感谢你的帮助
  • 从 ExoPlayer 缓存获取所有内容

    Using https google github io ExoPlayer doc reference com google android exoplayer2 upstream cache CacheDataSourceFactory
  • 如何使用 LINQ 仅比较日期而不是时间戳

    我试图仅比较列的日期 但因为下面的查询也在比较我没有返回结果集的时间 如果我只对实际日期值匹配感兴趣 如何编写相同的 LINQ 查询 ImportDate 列的值与此类似2009 08 30 12 26 00 from t in Units
  • igraph/visNetwork with R:如何禁用前向链接?

    以下代码生成一个漂亮的网络图 library igraph library visNetwork library dplyr set seed 123 nnodes lt 10 nnedges lt 20 nodes lt data fra
  • 如何使用 Python (Windows Vista) 检索列表中文件的标签?

    我想为我拥有的各种文件夹制作一个标签云 但不幸的是 我似乎找不到在 Windows Vista 中访问文件标签的方法 我尝试查看 win32 模块和 os stat 但我似乎找不到方法 我可以得到一些帮助吗 我使用 win32 扩展包以及我
  • 使用 Python 3 中的 Pipeline 获取 RFE 的支持和排名属性

    到目前为止 我的代码如下 并且运行良好 但是 我想打印以下内容RFE每个测试特征的属性 rfe support i rfe ranking i 和所选功能的名称由于 i 指的是索引 因此第一个属性返回 True 或 False 如果列被选择
  • 通过 css-loader 3.4.2 中的 localsConvention 将 kebab-case 转换为camelCase 不起作用

    出于测试 学习的目的 我使用的是弹出版本create react app 3 4 1附带css loader 3 4 2 我正在尝试重现这些结果 https github com webpack contrib css loader nam