在进行生产时,在各处替换CSS类(css,html / twig,javascript)

时间:2019-04-25 19:29:50

标签: css obfuscation bem

我考虑在下一个项目中使用 BEM 命名约定,但由于类名太长,我有点担心性能。

例如(来源为here

<figure class="photo">
  <img class="photo__img photo__img--framed" src="me.jpg">
  <figcaption class="photo__caption photo__caption--large">Look at me!</figcaption>
</figure>

在具有数十个sass文件的复杂项目中,差异可以忽略不计。

我正在使用Symfony 4,我想知道是否有一种优雅的方法可以用ab,{{ 1}},c...aa

JavaScript输出也可能是一个考虑因素,因为它可能会向某些元素动态添加css类。

对于css部分,我认为在最终输出上进行全局替换的Webpack插件就足够了。

对于JavaScript来说,我认为几乎不可能完全正确,因为类名称可以动态生成(ab),甚至更糟的是,可以从服务器或您可以想象的其他任何方式返回。

因此,我考虑将前缀添加到不应替换的类中。就像以var className = "--is-" + this.state;开始。

但是html部分(或者我应该说_部分)更难解决,因为它不能像Javascript部分那样被忽略,并且在开发中编写的代码和所使用的代码之间没有转换在生产中。

我猜想,当构建缓存时,twig会将所有内容都编译到php中,因此使用编译钩子可能需要做些什么,或者就是那个区域。

您知道做这种事情的任何工具吗?

大型网站如何处理? 例如,如果我在Google服务中打开检查器,则会看到以下内容:

twig

对我来说看起来并不友好。

感谢您的见解。

0 个答案:

没有答案