質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%
npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

gulp

gulpは、Node.jsをベースとしたタスク自動化ツールの一つ。ストリームでファイルを処理することが特徴です。CSSプリプロセッサの使用時のコンパイルや、CSS・JavaScriptファイルの圧縮・結合などを自動的に行うことができます。

Q&A

解決済

gulpを使用したいのですが、npm installにてエラーが発生しnode_modulesがインストールできません。

o0039
o0039

総合スコア3

npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

gulp

gulpは、Node.jsをベースとしたタスク自動化ツールの一つ。ストリームでファイルを処理することが特徴です。CSSプリプロセッサの使用時のコンパイルや、CSS・JavaScriptファイルの圧縮・結合などを自動的に行うことができます。

1回答

0グッド

0クリップ

680閲覧

投稿2022/10/05 13:26

前提

PCを購入し、古いPCで開発していたコードをgulpで管理しようと考えています。

以前のパソコンでもgulpを使用しており、新しいPCに再度npmやNode.jsをインストールし、古いPCで開発していたコードを新しいPCにコピー、npm installを試しましたが、エラーが発生し、途方に暮れております。

実現したいこと

エラーを解消しgulpを活用できるようにしたいです。

発生している問題・エラーメッセージ

npm WARN old lockfile npm WARN old lockfile The package-lock.json file was created with an old version of npm, npm WARN old lockfile so supplemental metadata must be fetched from the registry. npm WARN old lockfile npm WARN old lockfile This is a one-time fix-up, please be patient... npm WARN old lockfile npm WARN deprecated stable@0.1.8: Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated npm WARN deprecated har-validator@5.1.5: this library is no longer supported npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated npm WARN deprecated source-map-resolve@0.5.3: See https://github.com/lydell/source-map-resolve#deprecated npm WARN deprecated source-map-url@0.4.0: See https://github.com/lydell/source-map-url#deprecated npm WARN deprecated fsevents@1.2.13: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2. npm WARN deprecated chokidar@2.1.8: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142 npm WARN deprecated svgo@1.3.2: This SVGO version is no longer supported. Upgrade to v2.x.x. npm WARN deprecated tar@2.2.2: This version of tar is no longer supported, and will not receive security updates. Please upgrade asap. npm ERR! code 1 npm ERR! path /Users/省略/node_modules/node-sass npm ERR! command failed npm ERR! command sh /var/folders/cc/mg5zswzj5v3gzvmnw8x8wzxr0000gn/T/postinstall-142d57f0.sh npm ERR! Building: /Users/省略/.nodebrew/node/v16.17.1/bin/node /Users/省略/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library= npm ERR! gyp info it worked if it ends with ok npm ERR! gyp verb cli [ npm ERR! gyp verb cli '/Users/省略/.nodebrew/node/v16.17.1/bin/node', npm ERR! gyp verb cli '/Users/省略/node_modules/node-gyp/bin/node-gyp.js', npm ERR! gyp verb cli 'rebuild', npm ERR! gyp verb cli '--verbose', npm ERR! gyp verb cli '--libsass_ext=', npm ERR! gyp verb cli '--libsass_cflags=', npm ERR! gyp verb cli '--libsass_ldflags=', npm ERR! gyp verb cli '--libsass_library=' npm ERR! gyp verb cli ] npm ERR! gyp info using node-gyp@3.8.0 npm ERR! gyp info using node@16.17.1 | darwin | arm64 npm ERR! gyp verb command rebuild [] npm ERR! gyp verb command clean [] npm ERR! gyp verb clean removing "build" directory npm ERR! gyp verb command configure [] npm ERR! gyp verb check python checking for Python executable "python2" in the PATH npm ERR! gyp verb `which` failed Error: not found: python2 npm ERR! gyp verb `which` failed at getNotFoundError (/Users/省略/node_modules/which/which.js:13:12) npm ERR! gyp verb `which` failed at F (/Users/省略/node_modules/which/which.js:68:19) npm ERR! gyp verb `which` failed at E (/Users/省略/node_modules/which/which.js:80:29) npm ERR! gyp verb `which` failed at /Users/省略/node_modules/which/which.js:89:16 npm ERR! gyp verb `which` failed at /Users/省略/node_modules/isexe/index.js:42:5 npm ERR! gyp verb `which` failed at /Users/省略/node_modules/isexe/mode.js:8:5 npm ERR! gyp verb `which` failed at FSReqCallback.oncomplete (node:fs:206:21) npm ERR! gyp verb `which` failed python2 Error: not found: python2 npm ERR! gyp verb `which` failed at getNotFoundError (/Users/省略/node_modules/which/which.js:13:12) npm ERR! gyp verb `which` failed at F (/Users/省略/node_modules/which/which.js:68:19) npm ERR! gyp verb `which` failed at E (/Users/省略/node_modules/which/which.js:80:29) npm ERR! gyp verb `which` failed at /Users/省略/node_modules/which/which.js:89:16 npm ERR! gyp verb `which` failed at /Users/省略/node_modules/isexe/index.js:42:5 npm ERR! gyp verb `which` failed at /Users/省略/node_modules/isexe/mode.js:8:5 npm ERR! gyp verb `which` failed at FSReqCallback.oncomplete (node:fs:206:21) { npm ERR! gyp verb `which` failed code: 'ENOENT' npm ERR! gyp verb `which` failed } npm ERR! gyp verb check python checking for Python executable "python" in the PATH npm ERR! gyp verb `which` failed Error: not found: python npm ERR! gyp verb `which` failed at getNotFoundError (/Users/省略/node_modules/which/which.js:13:12) npm ERR! gyp verb `which` failed at F (/Users/省略/node_modules/which/which.js:68:19) npm ERR! gyp verb `which` failed at E (/Users/省略/node_modules/which/which.js:80:29) npm ERR! gyp verb `which` failed at /Users/省略/node_modules/which/which.js:89:16 npm ERR! gyp verb `which` failed at /Users/省略/node_modules/isexe/index.js:42:5 npm ERR! gyp verb `which` failed at /Users/省略/node_modules/isexe/mode.js:8:5 npm ERR! gyp verb `which` failed at FSReqCallback.oncomplete (node:fs:206:21) npm ERR! gyp verb `which` failed python Error: not found: python npm ERR! gyp verb `which` failed at getNotFoundError (/Users/省略/node_modules/which/which.js:13:12) npm ERR! gyp verb `which` failed at F (/Users/省略/node_modules/which/which.js:68:19) npm ERR! gyp verb `which` failed at E (/Users/省略/node_modules/which/which.js:80:29) npm ERR! gyp verb `which` failed at /Users/省略/node_modules/which/which.js:89:16 npm ERR! gyp verb `which` failed at /Users/省略/node_modules/isexe/index.js:42:5 npm ERR! gyp verb `which` failed at /Users/省略/node_modules/isexe/mode.js:8:5 npm ERR! gyp verb `which` failed at FSReqCallback.oncomplete (node:fs:206:21) { npm ERR! gyp verb `which` failed code: 'ENOENT' npm ERR! gyp verb `which` failed } npm ERR! gyp ERR! configure error npm ERR! gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable. npm ERR! gyp ERR! stack at PythonFinder.failNoPython (/Users/省略/node_modules/node-gyp/lib/configure.js:484:19) npm ERR! gyp ERR! stack at PythonFinder.<anonymous> (/Users/省略/node_modules/node-gyp/lib/configure.js:406:16) npm ERR! gyp ERR! stack at F (/Users/省略/node_modules/which/which.js:68:16) npm ERR! gyp ERR! stack at E (/Users/省略/node_modules/which/which.js:80:29) npm ERR! gyp ERR! stack at /Users/省略/node_modules/which/which.js:89:16 npm ERR! gyp ERR! stack at /Users/省略/node_modules/isexe/index.js:42:5 npm ERR! gyp ERR! stack at /Users/省略/node_modules/isexe/mode.js:8:5 npm ERR! gyp ERR! stack at FSReqCallback.oncomplete (node:fs:206:21) npm ERR! gyp ERR! System Darwin 21.6.0 npm ERR! gyp ERR! command "/Users/省略/.nodebrew/node/v16.17.1/bin/node" "/Users/省略/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library=" npm ERR! gyp ERR! cwd /Users/省略/node_modules/node-sass npm ERR! gyp ERR! node -v v16.17.1 npm ERR! gyp ERR! node-gyp -v v3.8.0 npm ERR! gyp ERR! not ok npm ERR! Build failed with error code: 1 npm ERR! A complete log of this run can be found in: npm ERR! /Users/省略/.npm/_logs/2022-10-05T13_01_22_726Z-debug-0.log

該当のソースコード

node -v v16.17.1 npm -v 8.15.0

試したこと

以前使用していた nodeのバージョンをv14.14.0に下げようと以下コマンドを打ちましたが、「is not found」と発生し変更できませんでした。

nodebrew install-binary v14.14.0
v14.14.0 is not found

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

2022/10/05 17:08

こちらの質問が他のユーザーから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました。

hoshi-takanori

2022/10/05 22:13

python2 が見つからなくてエラーになってるようですね。python 2.x はすでにサポート期限切れなので、いろいろ更新する必要があるのでは…。

回答1

0

ベストアンサー

どうせnode-sassのnode-gyp案件でしょ?ビンゴ

というわけで解説していきます。


まずは原理から
Node.jsのモジュールは基本的にJavaScriptファイルにて提供されますが、
Node.jsや周辺ライブラリ自体はC++で書かれており、同じくC++で作ったモジュールを組み込むことが可能です。
それがnode-gyp

npm install時にJavaScript以外のソースコードを持ってきてコンパイルして組み込むわけですが、
別言語の物を何の準備もなしに組み込む事はできません。

しかしnode-gypはNode.jsのライブラリの癖して、
環境構築にPythonを要求するなど、心底意味不明な挙動をする上に
すぐにエラーを吐きやがるので死ぬほど嫌われています。

今回npm installではpackage.jsonファイルのdependences
node-sassが指定されていると思いますが、
それがnode-gypが原因で導入できない状態となっています。

もしかするとnode-sassそのものではなく、
gulp-sassを使おうとしているのかもしれませんね。
そちらもpackage.jsonでnode-sassが指定されており、依存先の解消をしていく間にコケているわけです。


[LibSass非推奨化] node-sassとのお別れ ~ Dart Sassへ移行する | タコつぼのプログラミングblog

node-sassは大昔に廃れました。
なのでnode-gypの環境整備を必死にやるよりも、スパッとnode-sassを捨ててsassに乗り換えましょう。

なんかnode-sassを避ける上手いやり方はないかな?と調査したら、
gulp-dart-sassなるライブラリを見つけました。

これを元にpackage.jsonやgulpfile.jsを書き換えてみてください。

投稿2022/10/07 09:39

miyabi-sun

総合スコア21052

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

o0039

2022/10/15 03:09

ありがとうございます! gulp-dart-sassに書き換えたら、上手くいきました! 丁寧なご回答ありがとうございました!

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

gulp

gulpは、Node.jsをベースとしたタスク自動化ツールの一つ。ストリームでファイルを処理することが特徴です。CSSプリプロセッサの使用時のコンパイルや、CSS・JavaScriptファイルの圧縮・結合などを自動的に行うことができます。