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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Node.js

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

Sass

Sassは、プログラミング風のコードでCSSを生成できるスタイルシート言語です。 scss ファイルを、変換(コンパイル)してCSSファイルを作成します。

gulp

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

Q&A

解決済

1回答

9470閲覧

【再】npmエラーzsh: command not found: gulpの対処法

roronoazoro

総合スコア113

Node.js

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

Sass

Sassは、プログラミング風のコードでCSSを生成できるスタイルシート言語です。 scss ファイルを、変換(コンパイル)してCSSファイルを作成します。

gulp

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

0グッド

0クリップ

投稿2018/01/23 02:02

編集2018/01/24 11:13

前回質問した問題がいまだに解決しないので再度整理して質問させてください。
npmエラーzsh: command not found: gulpの対処法

シンプルに任意フォルダ配下でgulpの実行環境を作成してみる

json

1$nodeバージョン確認 2$ node -v 3v8.8.1 4 5# 任意フォルダ 6cd GulpSample 7 8# GulpSampleフォルダ配下にgulpをインストール 9$ npm install gulp --save-dev 10 11# gulpバージョン確認 12# ~~~~~~~~~~前回より解決していないPATHの問題~~~~~~~~~~ 13$ gulp -v 14zsh: command not found: gulp 15 16# PATHの確認 17$ echo $PATH 18/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin 19 20# 21$ npm bin -g 22/usr/local/bin 23 24# 存在確認 25$ ls $(npm bin -g) 26gulp 27 28ローカルgulp確認 29$ ls ltr /usr/local/bin/gulp 30gulp -> ../lib/node_modules/gulp/bin/gulp.js 31 32# gulpグローバルインストール 33$ npm install -g gulp 34npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue 35npm WARN deprecated minimatch@0.2.14: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue 36npm WARN deprecated graceful-fs@1.2.3: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree. 37/usr/local/bin/gulp -> /usr/local/lib/node_modules/gulp/bin/gulp.js 38npm ERR! path /usr/local/share/man/man1/gulp.1 39npm ERR! code EEXIST 40npm ERR! Refusing to delete /usr/local/share/man/man1/gulp.1: ../../../lib/node_modules/gulp-cli/gulp.1 symlink target is not controlled by npm /usr/local/share/man/man1 41npm ERR! File exists: /usr/local/share/man/man1/gulp.1 42npm ERR! Move it away, and try again. 43 44npm ERR! A complete log of this run can be found in: 45npm ERR! /Users/ユーザー名/.npm/_logs/2018-01-23T00_49_47_044Z-debug.log

前回ご回答いただきました、【プチ加筆】応用編、ローカルを上手く使うまでの対策を行っていれば、グローバルインストールを用いてのGulp実行はできるはずですが、できておりません。

備考 npx gulpのやり方で行えば実行可能

下記サイトでは何度かお世話になっており、一からなぞってやってみましたが、問題なくできます。
こちらでも--save-devなどを使用しており、グローバルでなく、ローカルでインストールしていくやり方のようです。
これまでのやり方だと、gulp scssなど、gulpfils.jsにscssタスクを記載していても、おそらくPATHの問題?でエラーとなっていましたが、下記サイトのやり方ではnpx gulpとして実行されています。

解決したいこととしては、gulp scssなどとしても実行してみたいです。
また、実行法は複数あるようなのですが、どのやり方がスタンダードなのでしょうか?
絶対つまずかないGulp入門。インストールからSassのコンパイルまで

前回の質問と重複しがちですが、整理がつかなくなってしまい、再度質問とさせていただきました。
よろしくお願いいたします。

質問追記1/23

json

1{ 2 "name": "GulpSample", 3 "version": "1.0.0", 4 "description": "", 5 "main": "index.js", 6 "scripts": { 7 "test": "echo \"Error: no test specified\" && exit 1", 8 "build": "gulp" // scripts内は node_modules/.bin のディレクトリを見てくれるため、省略ができます 追記 9 }, 10 "keywords": [], 11 "author": "", 12 "license": "ISC", 13 "devDependencies": { 14 "gulp": "^3.9.1", 15 "gulp-sass": "^3.1.0" 16 } 17} 18

質問1

1-2. npm run-scriptと組み合わせる

毎回"build": "gulp"をpackage.jsonに追加する流れで大丈夫でしょうか?

質問2
インストール方法ですが、覚えていないのですが、検索してなぞってやった記憶はあります。
下記which nodeの実行結果です。

json

1$ which node 2/usr/local/bin/node 3 4$ brew list node 5/usr/local/Cellar/node/8.5.0/bin/node 6/usr/local/Cellar/node/8.5.0/etc/bash_completion.d/npm 7/usr/local/Cellar/node/8.5.0/include/node/ (136 files) 8/usr/local/Cellar/node/8.5.0/lib/dtrace/node.d 9/usr/local/Cellar/node/8.5.0/libexec/bin/ (2 files) 10/usr/local/Cellar/node/8.5.0/libexec/lib/ (4000 files) 11/usr/local/Cellar/node/8.5.0/share/doc/ (3 files) 12/usr/local/Cellar/node/8.5.0/share/man/man1/node.1 13/usr/local/Cellar/node/8.5.0/share/systemtap/tapset/node.stp

一度アドバイスいただきましたやり方で再度node.jsをインストールしてみたいと思います。
また、実行結果を記載いたします。

node.jsアンインストールしようと下記サイトを参考にしたところ、どうやらbrewでインストールしているようでした。
上記のようにbrew list nodeとしnodeが確認できました。
node.jsをアンインストールしたい

brew uninstall nodeのエラー文追記

bash

1Error: Refusing to uninstall /usr/local/Cellar/node/8.5.0 2because it is required by yarn 1.0.2, which is currently installed. 3You can override this and force removal with: 4 brew uninstall --ignore-dependencies node

追記1/24

json

1// シンボリックリンク 2[$] ls -l /usr/local/bin/brew 3lrwxr-xr-x 1 ユーザー名 admin 28 7 24 2017 /usr/local/bin/brew -> /usr/local/Homebrew/bin/brew 4 5// brew自体の権限と所有者権限 6[$] ls -l /usr/local/Homebrew/bin/brew 7-rwxr-xr-x 1 ユーザー名 admin 2548 1 3 19:07 /usr/local/Homebrew/bin/brew // 返り値赤文字 8 9// brewでインストールされたものの権限と所有者情報 10[$] ls -l /usr/local/bin/node 11-rwxrwxr-x 1 ユーザー名 admin 35731472 10 29 16:44 /usr/local/bin/node // 返り値赤文字 12 13// 配下ディレクトリのCellerの権限と所有者情報 14[$] ls -l /usr/local 15total 0 16drwxrwxr-x 25 ユーザー名 admin 800 11 19 10:10 Cellar 17drwxrwxr-x 3 ユーザー名 admin 96 11 19 10:10 Frameworks 18drwxrwxr-x 17 ユーザー名 admin 544 1 3 19:07 Homebrew 19drwxrwxr-x 145 ユーザー名 admin 4640 1 22 02:15 bin 20drwxrwxr-x 6 ユーザー名 admin 192 11 19 10:09 etc 21drwxr-xr-x 11 root wheel 352 11 19 10:10 git 22drwxrwxr-x 12 ユーザー名 admin 384 11 19 10:10 include 23drwxrwxr-x 33 ユーザー名 admin 1056 11 19 10:10 lib 24lrwxr-xr-x 1 root wheel 30 7 24 2017 mysql -> mysql-5.7.19-macos10.12-x86_64 25drwxr-xr-x 3 root wheel 96 11 19 10:09 n 26drwxrwxr-x 37 ユーザー名 admin 1184 11 19 10:10 opt 27drwxr-xr-x 3 root wheel 96 11 19 10:10 remotedesktop 28drwxrwxr-x 14 ユーザー名 admin 448 11 19 10:10 share 29drwxr-xr-x 13 ユーザー名 staff 416 11 19 10:10 tomcat 30drwxrwxr-x 5 ユーザー名 admin 160 11 19 10:10 var 31 32// brew自体が持っているbrewの診断ツール 33[$] brew doctor 34Please note that these warnings are just used to help the Homebrew maintainers 35with debugging if you file an issue. If everything you use Homebrew for is 36working fine: please don't worry or file an issue; just ignore this. Thanks! 37 38Warning: You have MacPorts or Fink installed: 39 /opt/local/bin/port 40 41This can cause trouble. You don't have to uninstall them, but you may want to 42temporarily move them out of the way, e.g. 43 44 sudo mv /opt/local ~/macports 45 46Warning: Unbrewed header files were found in /usr/local/include. 47If you didn't put them there on purpose they could cause problems when 48building Homebrew formulae, and may need to be deleted. 49 50Unexpected header files: 51 /usr/local/include/node/android-ifaddrs.h 52 /usr/local/include/node/ares.h 53 /usr/local/include/node/ares_build.h 54 /usr/local/include/node/ares_rules.h 55 /usr/local/include/node/ares_version.h 56 /usr/local/include/node/libplatform/libplatform-export.h 57 /usr/local/include/node/libplatform/libplatform.h 58 /usr/local/include/node/libplatform/v8-tracing.h 59 /usr/local/include/node/nameser.h 60 /usr/local/include/node/node.h 61 /usr/local/include/node/node_api.h 62 /usr/local/include/node/node_api_types.h 63 /usr/local/include/node/node_buffer.h 64 /usr/local/include/node/node_object_wrap.h 65 /usr/local/include/node/node_version.h 66 /usr/local/include/node/openssl/aes.h 67 /usr/local/include/node/openssl/archs/BSD-x86/opensslconf.h 68 // ...以下文字数制限により省略 69 70Warning: You have unlinked kegs in your Cellar 71Leaving kegs unlinked can lead to build-trouble and cause brews that depend on 72those kegs to fail to run properly once built. Run `brew link` on these: 73 node 74 75Warning: Broken symlinks were found. Remove them with `brew prune`: 76 /usr/local/bin/apm 77 /usr/local/bin/atom 78 /usr/local/bin/gulp 79 /usr/local/share/man/man1/gulp.1 80 /usr/local/share/man/man1/npx.1 81 82// OSのビルドバージョン 83[$] sw_vers 84ProductName: Mac OS X 85ProductVersion: 10.13.2 86BuildVersion: 17C205 87macOS High Sierra バージョン 10.13.2

1/24 追記

json

1[$] brew prune 2Pruned 5 symbolic links and 10 directories from /usr/local 3 4[$] brew list 5autoconf node pkg-config ruby yarn 6gdbm openssl python ruby-build zsh 7icu4c openssl@1.1 rbenv sqlite zsh-completions 8jenkins pcre readline tree 9libyaml perl rename vim 10 11[$] brew cask list 12==> Tapping caskroom/cask 13Cloning into '/usr/local/Homebrew/Library/Taps/caskroom/homebrew-cask'... 14 remote: Counting objects: 3993, done. 15remote: Compressing objects: 100% (3970/3970), done. 16remote: Total 3993 (delta 36), reused 618 (delta 19), pack-reused 0 17Receiving objects: 100% (3993/3993), 1.37 MiB | 594.00 KiB/s, done. 18Resolving deltas: 100% (36/36), done. 19Tapped 0 formulae (4,002 files, 4.3MB) 20==> Creating Caskroom at /usr/local/Caskroom 21==> We'll set permissions properly so we won't need sudo in the future

bash

1//追記 2bash-3.2$ sudo find / -name "brew" 3Password: 4find: /private/var/db/ConfigurationProfiles/Store: Operation not permitted 5find: /private/var/folders/js/77b1ttqn6dlgdc3qw57s6_xh0000gn/0/SafariFamily: Operation not permitted 6find: /private/var/folders/js/77b1ttqn6dlgdc3qw57s6_xh0000gn/0/com.apple.LaunchServices.dv: Operation not permitted 7find: /private/var/folders/js/77b1ttqn6dlgdc3qw57s6_xh0000gn/0/com.apple.nsurlsessiond: Operation not permitted 8find: /private/var/folders/js/77b1ttqn6dlgdc3qw57s6_xh0000gn/0/com.apple.routined: Operation not permitted 9find: /private/var/folders/0n/8t0zp0d919gby3shbrd9n29r0000gp/0/com.apple.LaunchServices.dv: Operation not permitted 10find: /private/var/folders/zz/zyxvpxvq6csfxvn_n00000y800007k/0/com.apple.nsurlsessiond: Operation not permitted 11find: /private/var/folders/7_/lk68k4bx2nqfddqqvlfzhzyr0000gq/0/com.apple.LaunchServices.dv: Operation not permitted 12/Users/ユーザー名/.oh-my-zsh/plugins/brew 13find: /dev/fd/3: Not a directory 14find: /dev/fd/4: Not a directory 15 16bash-3.2$ ls -l /usr/local/Cellar 17drwxr-xr-x 3 ユーザー名 admin 96 10 6 06:15 ruby 18 19bash-3.2$ ls -l /usr/local/lib 20drwxrwxr-x 3 ユーザー名 admin 96 9 27 22:27 dtrace 21drwxrwxr-x 16 ユーザー名 admin 512 1 23 17:57 node_modules 22drwxr-xr-x 3 ユーザー名 admin 96 7 21 2017 python2.7 23drwxr-xr-x 4 ユーザー名 admin 128 1 24 17:17 ruby

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

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

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

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

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

guest

回答1

0

ベストアンサー

  1. ローカルで実行する場合は(オススメ)

console

1npm install -D gulp 2 3./node_modules/.bin/gulp

1-2. npm run-scriptと組み合わせる

json

1 2"scripts": { 3 "build": "gulp" // scripts内は node_modules/.bin のディレクトリを見てくれるため、省略ができます 4}

といったことをpackage.jsonに書く

  1. グローバルにインストールする

console

1npm install -g gulp 2which gulp

ここまでがgulpを使うまでです


で、ちょっと気になったのはnodeってどんな形で入れられました?

console

1which node 2 3which npm

とした時にどこのパスが出て来ますか?

通常、nodebrewやnvmと行ったnodeのversion管理を行うものを使うために

console

1which node 2~/.nodebrew/current/bin/node 3 4which npm 5~/.nodebrew/current/bin/npm

といったパスが出てきます

そこらへんのパスが矢継ぎ早に直している内にごちゃついてしまっているのではないかと思います

このままでは時間を取られてしまうのでは無いかと思います

Macを使われているかと思いますが、一度綺麗にしてから再インストールを試みるのはどうでしょうか?


綺麗にした後にもし実行されるのであれば、こちらに簡単な手順ですが書いておきます

  1. homebrewのインストール

1-1. https://brew.sh/index_ja.html
2. nodebrewのインストール
2-1. https://qiita.com/sinmetal/items/154e81823f386279b33c
2-2. nodeのインストール
3. テスト
3-1. mkdir test
3-2. npm i -D gulp
3-3. ./node_modules/.bin/gulp

これで実行できるかと思います

投稿2018/01/23 07:29

orange-lion

総合スコア426

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

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

roronoazoro

2018/01/23 09:36

詳細にご回答いただきありがとうございます。 which nodeでは/usr/local/bin/nodeとなるのに、brew list nodeとすると/usr/local/Cellar/node/8.5.0/bin/nodeと返ってきます。 これはどちらでインストールしたことになるのでしょうか? またbrewだとしても再インストトールした方がよろしいでしょうか? 本文に詳細追記しましたのでご確認していただけると助かります。 よろしくお願いします。
orange-lion

2018/01/23 11:14

それは homebrew でインストールしたことになるので `brew uninstall node` でアンインストールすることができます `brew list node` で出て来る、ということは直接node.jsをマシンにインストールしたことになります で、管理しているのがhomebrewということになります `homebrew -> node.js` 私が提案しているのは下記の管理方法です `homebrew -> nodebrew -> node.js` > 質問1 毎回というのが何を指しているのかはちょっとわかりづらいのですが、例えば1プロジェクト内の話であれば、1度書けば、何度でも使いまわせます それとは別にプロジェクトごとにpackage.jsonがあれば、その分だけ追記する必要になります aというディレクトリとbというディレクトリにそれぞれpackage.jsonがあれば、毎回追記することになります > 質問2 `brew install node` と多分されたと思います なので、 `brew uninstall node` としてアンインストールしてしまいましょう アンイストールした後はちゃんと残ってないことを確認しましょう
roronoazoro

2018/01/23 12:11

ありがとうございます。 brew uninstall nodeとしたところ本文に追記したエラーが発生してしまいます。 こちらwhich nodeで出力した/usr/local/bin/nodeを丸ごと消してしまっても大丈夫でしょうか....?
orange-lion

2018/01/23 16:00 編集

このエラーはおかしいですね ちょっと詳細が欲しいので今から書くコマンドの返り値が欲しいです ``` ls -l /usr/local/bin/brew // 多分これはシンボリックリンクだと思うので下記コマンドも実行してください(ここで出されたリンク先をls -lをしてください) ls -l /usr/local/Homebrew/bin/brew // brew自体の権限と所有者情報が欲しいです ls -l /usr/local/bin/node // brewでインストールされたものの権限と所有者情報が欲しいです ls -l /usr/local/ // 配下ディレクトリのCellerの権限と所有者情報が欲しいです brew doctor // brew自体が持っているbrewの診断ツール sw_vers // OSのビルドバージョン ``` OSはHigh Sierraですか?Sierraですか?El capitanですか?
roronoazoro

2018/01/24 00:49

ありがとうございます。 返り値本文に記載いたしました。 OSはmacOS High Sierra バージョン 10.13.2です。
orange-lion

2018/01/24 02:27

MacPortsをインストールされていた形跡がありますね brewはportsとは干渉するので綺麗に削除しましょう ``` sudo mv /opt/local ~/macports ``` brewのシムリンクが壊れているので綺麗にしてしまいましょう ``` brew prune ``` ここまで壊れているとhomebrewの再インストールの方が早いかもしれませんね ``` brew list brew cask list ``` などでインストールされているものをメモに保存しておきましょう(この際必要そうなものだけ残すようにした方が良いと思います) nodeとnpmはメモに残さないでください https://docs.brew.sh/FAQ.html How do I uninstall Homebrewに書いてあるアンインストールの項目を実行します ``` ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)" ``` で、終わったら ``` which brew which node which npm ``` でコマンドがないことを確認します あとは一番最初の回答でした1, 2, 3の順に実行して行けば大丈夫なはずです ちょっと確認しておきたいのですが、そのPCは購入された時のOSはなんだったんでしょうか?
roronoazoro

2018/01/24 09:40

ありがとうございます。 OSは覚えていませんが、2017年の2月の時の最新のmacbookproを購入しました。 itermにてruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"としてアンインストールしたのですが、何時間経っても反応が返ってこなくなってしまいました。 あえなく強制終了しbrew、node、npmを確認したのが下記です。 brew以外残っているようでした。 ``` bash-3.2$ which node npm /usr/local/bin/node /usr/local/bin/npm ``` この場合、nodeとnpmが残ってしまっている場合はどのように削除すればいいでしょうか・・? よろしくお願いします。
orange-lion

2018/01/25 12:09 編集

brewは本当に消えていますかね? ``` sudo find / -name '*brew*' ls -l /usr/local/Cellar ls -l /usr/local/lib ``` と打って、本当になくなったのか調べた方が良いでしょう 関連ファイルが残っている場合があります ( `usr/local/Cellar` など) 注意 ``` drwxr-xr-x 6 ユーザ名 admin 204 1 5 16:49 ruby lrwxr-xr-x 1 ユーザ名 admin 29 1 19 06:16 zsh -> ../Cellar/zsh/5.4.2_3/lib/zsh ``` `/usr/local/lib` の中身はこうなっていたりするので上の例で言うとrubyは消してはダメです Cellarにシンボリックリンクが貼られているものを消さないといけないです それっぽいのが消されているのが確認したらnodeとnpm自体は消して良いと思います ``` rm /usr/local/bin/node rm /usr/local/bin/npm ``` apmやatomもその様子だと残っているかもしれないので、brew listで出したbrewに入れたコマンド自体を目分で消していくしかないと思います
roronoazoro

2018/01/24 11:21

たびたび、ありがとうございます。 また、本文下に実行結果記載いたしました。 brewを確認すると、返り値にOperation not permittedエラーが発生しています。 対策法を検索してみると下記サイトを見つけました。 https://qiita.com/iwaseasahi/items/9d2e29b02df5cce7285d このサイトの対策法を試す流れで大丈夫でしょうか? また、一応上記の結果からするとシンボリックリンクは消えているようであります。
orange-lion

2018/01/24 12:54

そのサイトの対策法は試さなくて大丈夫です 記憶が正しければ `/private` ディレクトリはunixシステムの `/etc` `/tmp` `/var` のシンボリックリンク先になるのでそこにリンクされています そこにbrewのものが入っている可能性はないでしょう nodeなどが消し終わったらhomebrewのインストールを始めましょう
roronoazoro

2018/01/25 08:06

orange-lion様、たびたびお世話になりありがとうございました。 nodebrewとても便利ですね。 brewを再インストールしgulp実行することができました。 また、詰まった際はお世話になるかもしれません。 その時はよろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問