styled-components で production ビルド時でも devtool から CSSいじれるようにする
2020/06/25 追記
Chrome 85でこちら解消される模様です。
https://developers.google.com/web/updates/2020/06/devtools
ステージング環境で production ビルドしつつ、CSSはこまかい修正確認する時にいじれるといいなあ、ということがあったので対応した際のメモ。
中身としては、こちらの記事の SC_DISABLE_SPEEDY
を補強する感じになる。
https://terrier.dev/blog/2019/20190224165710-production-styled-components-chrome-devtool/
まず事象として Production ビルドした時に devtool から要素のスタイルを見るとこんな感じになっていじれない。
これは styled-components がプロダクションビルド時に CSSOM API なるものからCSSを追加しており、その際にいじれなくなるchromiumのバグ(仕様?)らしい。
https://stackoverflow.com/questions/51544215/styled-component-styles-are-disabled-in-chrome-devtools
https://bugs.chromium.org/p/chromium/issues/detail?id=387952
この最適化を止めるためには SC_DISABLE_SPEEDY
というフラグをグローバル変数として定義してあげれば良い。
まず今回の方法を試すためには styled-components のバージョン 4.1.0 以上が必要になる。リリースノートを見る限りこのバージョンから追加されたっぽいからだ。
https://www.styled-components.com/releases#v4.1.0
次に指定の仕方だが、entryファイルに直接書いておいてもいいらしいが、私は webpack の DefinePlugin を使った。pluginsの中に次のように指定した。
new webpack.DefinePlugin({
SC_DISABLE_SPEEDY: isStaging
}),
これで devtool からいじれるようになった
Author And Source
この問題について(styled-components で production ビルド時でも devtool から CSSいじれるようにする), 我々は、より多くの情報をここで見つけました https://qiita.com/seya/items/171f5734beed25b987d5著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .