一応注意喚起です。
node-sass(LibSass)はDeprecated(非推奨)なので
sass(DartSass)に移行しましょう。
参考記事:
上記を踏まえて質問文の問題にどう立ち向かっていくのかを考えていきましょう。
利用したいライブラリがnode-sass ^4.14.1に依存しており、そこでエラーが発生しています。
こういう依存ライブラリがメンテされずにプロジェクトが死ぬみたいなケースはしょっちゅう発生します。
まず検討するのは下記です。
- 何故そのライブラリを使わなければならないのか?目的は?
- 代替ライブラリはないのか?
- 使い続ける覚悟をした場合の方法とは?
質問文は最初から3番を検討してます。
node-sassはnode-gyp
(C++の拡張モジュール)を利用しており、インストールするだけで一大事です。
そしてそいつが本流ならともかく、非推奨のLibSassということで開発者達は泥舟から次々と逃げています。
なんでそのライブラリはLibSassにしがみついているのか?
単純にわかってないだけとか、メンテせずに放置してるだけとか色々考えられます。
そんなの使う価値あるんですか?
まずそこを考えて見てください。
- 現実行環境をnode-sass ^4.14.1に対応するnode.jsにダウングレードする
- node-sass ^4.14.1に対応するnode.jsを用意した、実行環境をdockerで構築する
どちらもあまりパッと来ないですね。
別プロジェクトに飛ばしてしまって
SassからCSSを生成して、本流のプロジェクトでCSSファイルを使わせて頂くみたいな解決策はあります。
Node.jsのバージョン管理ツールでVoltaとかどうですかね。
機能の一部にpackage.jsonに依存するNode.jsやnpmのバージョンを保管して
それを呼び出すみたいな芸当もやってのけるので、用途には合ってます。
参考記事: Node.jsのバージョン管理にVoltaを推したい - Zenn
このCSSファイルを生成するプロセスはnpm-scriptでやるのも良いですが、
Dockerに包んでも良いと思います。
Volta前提というのもまたちょっと微妙なので、Dockerの方が良い案に思えますね。
例えば利用したいライブラリの依存関係を変更して利用できる方法などございましたら、ご教授くださいませ。
一番検討したいのはプロジェクトのForkですね。
npmはGitHubのURLを指定すれば、そこから取ってくるみたいな芸当も出来ます。
参考記事: Githubまたはローカルのnpm のパッケージをinstallする方法 - Qiita
元のモジュールがnpmで配布されているなら
多分GitHubで公開してるんじゃないですか?
それを自分のアカウントでForkしてプロジェクトを丸ごとコピーします。
後は丸ごとコピーしたプロジェクトのpackage.jsonをnode-sassからsassに変更。
プログラムの至る所でエラーで落ちると思うので、
エディタでnode-sassを使っている箇所を検索して洗い出して
sassパッケージ流儀の書き方に修正。
これで一通りファイルを吐き出して特に問題が無ければ
お目当てのライブラリで導入する時に自分のGitHubのリポジトリを指しながらインストールするだけです。
GulpやGruntはもう下火ですので、
昨日の常識は明日の非常識。
同じライブラリを使い続けるならば、マイナーな言語やライブラリを使い続けるならば
こういうアプローチは必要になるでしょう。