現象
最近 Dart Sass で Scss をトランスパイルすると、
DEPRECATION WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.
という警告が表示されるようになりました。
より詳細には以下のような感じです。
DEPRECATION WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.
Recommendation: math.div($spacer, 2)
More info and automated migrator: https://sass-lang.com/d/slash-div
╷
308 │ $headings-margin-bottom: $spacer / 2 !default;
│ ^^^^^^^^^^^
╵
node_modules\bootstrap-honoka\scss\honoka\_variables.scss 308:31 @import
src\scss\global\honoka\_honokaImport.scss 7:9 @forward
src\scss\global\_framework.scss 3:1 @use
src\scss\foundation\_override.scss 4:1 @use
src\scss\foundation\_index.scss 3:1 @use
src\scss\contents.scss 8:1 root stylesheet
調査
調べると、 Dart Sass では徐算に /
を使った記述 (上述の例では $spacer / 2
) は非推奨となり、代わりに math.div($spacer, 2)
というように、ビルトインモジュールの math
を使うように求められるようです。
なお、将来的には非推奨ではなく使用不可にしていく模様。
さて、問題はこの警告、大半が Bootstrap の中で発生しているということ。
自分で書いたコードのみならば修正していくのも吝かではないですが、 Bootstrap 本体となるとあまり手は入れたくないし、量も大量にあると想定されるので面倒なことになりそうです。
回避
上述より、根本的対処ではなく Dart Sass のパッケージ指定を固定するという一時的な回避策で逃げたいと思います。
// 略
"devDependencies": {
// 略
"sass": "1.32.12",
// 略
},
"resolutions": {
// 略
"sass": "1.32.12"
},
// 略
これでひとまず警告は出なくなりました。
後は Bootstrap 等が対応してくれることを祈る感じですかね……。