Background Decoration Top Left

package.jsonのstyleフィールド

April 8th, 2024

今日とあるパッケージのソースコードを読んでいたらstyleというフィールドがあるpackage.jsonを見かけた。
少なくともnodeのドキュメントnpmのドキュメントには記載がなくて、 何の仕様に基づくフィールドなのかよくわからない。
なにか特定のパッケージの拡張なのかなと思って調べてみるとこの記事が見つかった。 記事を読む感じだとpostcss関係の拡張のようだ。
Package.json "style" Attribute
faviconjaketrent.com
Arrow
link
This plugin can consume local files, node modules or web_modules. To resolve path of an @import rule, it can look into root directory (by default process.cwd()), web_modules, node_modules or local modules. When importing a module, it will look for index.css or file referenced in package.json in the style or main fields. You can also provide manually multiples paths where to look at.
postcss-importというpostcssのプラグインのREADMEには、 cssの@importを解決するためにnode_modules内のパッケージのstyleプロパティを読みにいく旨が書かれている。
このフィールドを含むパッケージを公開しても利用者側のバンドラがちゃんと対応していなきゃ使えない気がするので、 あまり積極的に使いたい機能ではない気がする。 (やるならpackage.jsonのexportsフィールドでcssを指定するほうが、直感的にわかりやすいと思う)

その他

Viteはこのfieldが適切に読みこんでくれるのかよくわからない。 このIssueがCloseされていて、それっぽい修正が入っているが手元の環境だとうまく動いてくれなかった。 ちゃんと原因を切り分けて調査したわけではないので、なにか設定が漏れているだけかもしれない。
package.json style field is not respected · Issue #1874 · vitejs/vite
favicongithub.com
Arrow
link
feat: support resolving style/sass entries in css @import · vitejs/vite@f90a85c
favicongithub.com
Arrow
link

Share this page!

  • X Logo
  • Bluesky Logo
  • Hatena Logo

Next

Arrow

電力価格の需給曲線を収集して眺める

Previous

Arrow

Cloudflare PagesにCLI経由でアップロードする