Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DISCUSS:如何支持自定义 postcss 插件 #1388

Open
sorrycc opened this issue Jul 9, 2024 · 8 comments
Open

DISCUSS:如何支持自定义 postcss 插件 #1388

sorrycc opened this issue Jul 9, 2024 · 8 comments

Comments

@sorrycc
Copy link
Member

sorrycc commented Jul 9, 2024

需求

需求来自 @xierenyuan

原始需求是 https://github.com/evrone/postcss-px-to-viewport ,这是一个 postcss 插件,我们内置的 px2rem 功能和这个有差异,无法满足需求。

思路

能想到的几个思路。

1)把 px2vp 内置在 Mako 里,这可能是最简单直接的方式,但这个功能感觉有些定制,没那么通用
2)在 load 后再加一个 hook 允许用户调整 load 的结果,不能直接用 load hook 的原因是 css 可能来自其他预编译语言比如 less,而 less 本身就占用了 load hook,同时 load hook 又是 hook_first(遇到有值就退出)的类型
3)支持 swc 的 wasm 插件,在 transform 阶段允许用户修改(不确定是否支持 css 的修改,待调研)

@xierenyuan
Copy link
Member

xierenyuan commented Jul 9, 2024

  1. 支持 2 支持后未来 可以实现一个 mako postcss 插件未来还有其他插件以可以直接复用(慢的问题 由使用者承担)
  2. swc 的插件 感觉以可以支持 有些场景其实在 load 处理 并不合适

@afc163
Copy link
Contributor

afc163 commented Jul 9, 2024

/polls '把 px2vp 内置在 Mako 里' '在 load 后再加一个 hook 允许用户调整 load 的结果' '支持 swc 的 wasm 插件'

@xusd320
Copy link
Contributor

xusd320 commented Jul 9, 2024

如果是 array hooks 是不是就没这个问题了, less 、sass 分开写

@sorrycc
Copy link
Member Author

sorrycc commented Jul 9, 2024

如果是 array hooks 是不是就没这个问题了, less 、sass 分开写

hook_serial(依次执行)? 感觉会有性能问题吧。

@PeachScript
Copy link
Member

讨论:

@jeasonnow
Copy link
Contributor

jeasonnow commented Aug 12, 2024

我看 Farm 是基于 js plugin 做的,是不是可以考虑增加现在 rust 中 js plugin 的生命周期(transform-css?)且增加 plugin 的优先级来支持一下?
https://github.com/farm-fe/farm/tree/main/js-plugins/postcss

@YufJi
Copy link
Contributor

YufJi commented Mar 11, 2025

@xusd320 现在引入了loader-runner后,less/sass-plugin中也内置一下postcss-loader, 这样postcss的配置应该就可以传过来了。

@xusd320
Copy link
Contributor

xusd320 commented Mar 11, 2025

@xusd320 现在引入了loader-runner后,less/sass-plugin中也内置一下postcss-loader, 这样postcss的配置应该就可以传过来了。

可以的,欢迎pr😆

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants