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

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

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

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

Node.js

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

gulp

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

Q&A

解決済

1回答

3403閲覧

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

o0039

総合スコア3

npm

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

Node.js

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

gulp

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

0グッド

0クリップ

投稿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/ツールのバージョンなど)

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2022/10/05 22:13

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

回答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

総合スコア21177

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

o0039

2022/10/15 03:09

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.39%

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

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

質問する

関連した質問