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

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

ただいまの
回答率

89.50%

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

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 3,402

roronoazoro

score 64

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

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

$nodeバージョン確認
$ node -v
v8.8.1

# 任意フォルダ
cd GulpSample

# GulpSampleフォルダ配下にgulpをインストール
$ npm install gulp --save-dev

# gulpバージョン確認
# ~~~~~~~~~~前回より解決していないPATHの問題~~~~~~~~~~
$ gulp -v
zsh: command not found: gulp

# PATHの確認
$ echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin

# 
$ npm bin -g
/usr/local/bin

# 存在確認
$ ls $(npm bin -g)
gulp

ローカルgulp確認
$ ls ltr /usr/local/bin/gulp
gulp -> ../lib/node_modules/gulp/bin/gulp.js

# gulpグローバルインストール
$ npm install -g gulp                                                                                          
npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated minimatch@0.2.14: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm 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.
/usr/local/bin/gulp -> /usr/local/lib/node_modules/gulp/bin/gulp.js
npm ERR! path /usr/local/share/man/man1/gulp.1
npm ERR! code EEXIST
npm 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
npm ERR! File exists: /usr/local/share/man/man1/gulp.1
npm ERR! Move it away, and try again.

npm ERR! A complete log of this run can be found in:
npm 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

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


質問1

1-2. npm run-scriptと組み合わせる
毎回"build": "gulp"をpackage.jsonに追加する流れで大丈夫でしょうか?

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

$ which node
/usr/local/bin/node

$ brew list node
/usr/local/Cellar/node/8.5.0/bin/node
/usr/local/Cellar/node/8.5.0/etc/bash_completion.d/npm
/usr/local/Cellar/node/8.5.0/include/node/ (136 files)
/usr/local/Cellar/node/8.5.0/lib/dtrace/node.d
/usr/local/Cellar/node/8.5.0/libexec/bin/ (2 files)
/usr/local/Cellar/node/8.5.0/libexec/lib/ (4000 files)
/usr/local/Cellar/node/8.5.0/share/doc/ (3 files)
/usr/local/Cellar/node/8.5.0/share/man/man1/node.1
/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のエラー文追記

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

 追記1/24 

// シンボリックリンク
[$] ls -l /usr/local/bin/brew
lrwxr-xr-x  1 ユーザー名  admin  28  7 24  2017 /usr/local/bin/brew -> /usr/local/Homebrew/bin/brew

// brew自体の権限と所有者権限
[$] ls -l /usr/local/Homebrew/bin/brew
-rwxr-xr-x  1 ユーザー名  admin  2548  1  3 19:07 /usr/local/Homebrew/bin/brew // 返り値赤文字

// brewでインストールされたものの権限と所有者情報
[$] ls -l /usr/local/bin/node
-rwxrwxr-x  1 ユーザー名  admin  35731472 10 29 16:44 /usr/local/bin/node // 返り値赤文字

// 配下ディレクトリのCellerの権限と所有者情報
[$] ls -l /usr/local
total 0
drwxrwxr-x   25 ユーザー名  admin   800 11 19 10:10 Cellar
drwxrwxr-x    3 ユーザー名  admin    96 11 19 10:10 Frameworks
drwxrwxr-x   17 ユーザー名  admin   544  1  3 19:07 Homebrew
drwxrwxr-x  145 ユーザー名  admin  4640  1 22 02:15 bin
drwxrwxr-x    6 ユーザー名  admin   192 11 19 10:09 etc
drwxr-xr-x   11 root             wheel   352 11 19 10:10 git
drwxrwxr-x   12 ユーザー名  admin   384 11 19 10:10 include
drwxrwxr-x   33 ユーザー名  admin  1056 11 19 10:10 lib
lrwxr-xr-x    1 root             wheel    30  7 24  2017 mysql -> mysql-5.7.19-macos10.12-x86_64
drwxr-xr-x    3 root             wheel    96 11 19 10:09 n
drwxrwxr-x   37 ユーザー名  admin  1184 11 19 10:10 opt
drwxr-xr-x    3 root             wheel    96 11 19 10:10 remotedesktop
drwxrwxr-x   14 ユーザー名  admin   448 11 19 10:10 share
drwxr-xr-x   13 ユーザー名  staff   416 11 19 10:10 tomcat
drwxrwxr-x    5 ユーザー名  admin   160 11 19 10:10 var

// brew自体が持っているbrewの診断ツール
[$] brew doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry or file an issue; just ignore this. Thanks!

Warning: You have MacPorts or Fink installed:
  /opt/local/bin/port

This can cause trouble. You don't have to uninstall them, but you may want to
temporarily move them out of the way, e.g.

  sudo mv /opt/local ~/macports

Warning: Unbrewed header files were found in /usr/local/include.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected header files:
  /usr/local/include/node/android-ifaddrs.h
  /usr/local/include/node/ares.h
  /usr/local/include/node/ares_build.h
  /usr/local/include/node/ares_rules.h
  /usr/local/include/node/ares_version.h
  /usr/local/include/node/libplatform/libplatform-export.h
  /usr/local/include/node/libplatform/libplatform.h
  /usr/local/include/node/libplatform/v8-tracing.h
  /usr/local/include/node/nameser.h
  /usr/local/include/node/node.h
  /usr/local/include/node/node_api.h
  /usr/local/include/node/node_api_types.h
  /usr/local/include/node/node_buffer.h
  /usr/local/include/node/node_object_wrap.h
  /usr/local/include/node/node_version.h
  /usr/local/include/node/openssl/aes.h
  /usr/local/include/node/openssl/archs/BSD-x86/opensslconf.h
  // ...以下文字数制限により省略

Warning: You have unlinked kegs in your Cellar
Leaving kegs unlinked can lead to build-trouble and cause brews that depend on
those kegs to fail to run properly once built. Run `brew link` on these:
  node

Warning: Broken symlinks were found. Remove them with `brew prune`:
  /usr/local/bin/apm
  /usr/local/bin/atom
  /usr/local/bin/gulp
  /usr/local/share/man/man1/gulp.1
  /usr/local/share/man/man1/npx.1 

// OSのビルドバージョン
[$] sw_vers
ProductName:  Mac OS X
ProductVersion: 10.13.2
BuildVersion: 17C205
macOS High Sierra バージョン 10.13.2

 1/24 追記

[$] brew prune
Pruned 5 symbolic links and 10 directories from /usr/local

[$] brew list
autoconf  node    pkg-config  ruby    yarn
gdbm    openssl   python    ruby-build  zsh
icu4c   openssl@1.1 rbenv   sqlite    zsh-completions
jenkins   pcre    readline  tree
libyaml   perl    rename    vim

[$] brew cask list
==> Tapping caskroom/cask
Cloning into '/usr/local/Homebrew/Library/Taps/caskroom/homebrew-cask'...
  remote: Counting objects: 3993, done.
remote: Compressing objects: 100% (3970/3970), done.
remote: Total 3993 (delta 36), reused 618 (delta 19), pack-reused 0
Receiving objects: 100% (3993/3993), 1.37 MiB | 594.00 KiB/s, done.
Resolving deltas: 100% (36/36), done.
Tapped 0 formulae (4,002 files, 4.3MB)
==> Creating Caskroom at /usr/local/Caskroom
==> We'll set permissions properly so we won't need sudo in the future
//追記
bash-3.2$ sudo find / -name "brew"
Password:
find: /private/var/db/ConfigurationProfiles/Store: Operation not permitted
find: /private/var/folders/js/77b1ttqn6dlgdc3qw57s6_xh0000gn/0/SafariFamily: Operation not permitted
find: /private/var/folders/js/77b1ttqn6dlgdc3qw57s6_xh0000gn/0/com.apple.LaunchServices.dv: Operation not permitted
find: /private/var/folders/js/77b1ttqn6dlgdc3qw57s6_xh0000gn/0/com.apple.nsurlsessiond: Operation not permitted
find: /private/var/folders/js/77b1ttqn6dlgdc3qw57s6_xh0000gn/0/com.apple.routined: Operation not permitted
find: /private/var/folders/0n/8t0zp0d919gby3shbrd9n29r0000gp/0/com.apple.LaunchServices.dv: Operation not permitted
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n00000y800007k/0/com.apple.nsurlsessiond: Operation not permitted
find: /private/var/folders/7_/lk68k4bx2nqfddqqvlfzhzyr0000gq/0/com.apple.LaunchServices.dv: Operation not permitted
/Users/ユーザー名/.oh-my-zsh/plugins/brew
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory

bash-3.2$ ls -l /usr/local/Cellar
drwxr-xr-x  3 ユーザー名  admin  96 10  6 06:15 ruby

bash-3.2$ ls -l /usr/local/lib
drwxrwxr-x   3 ユーザー名  admin   96  9 27 22:27 dtrace
drwxrwxr-x  16 ユーザー名  admin  512  1 23 17:57 node_modules
drwxr-xr-x   3 ユーザー名  admin   96  7 21  2017 python2.7
drwxr-xr-x   4 ユーザー名  admin  128  1 24 17:17 ruby
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

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

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

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

  1. ローカルで実行する場合は(オススメ)
npm install -D gulp

./node_modules/.bin/gulp

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

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

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

  1. グローバルにインストールする
npm install -g gulp
which gulp

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


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

which node

which npm

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

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

which node
~/.nodebrew/current/bin/node

which npm
~/.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/24 20:21

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

    また、一応上記の結果からするとシンボリックリンクは消えているようであります。

    キャンセル

  • 2018/01/24 21:54

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

    nodeなどが消し終わったらhomebrewのインストールを始めましょう

    キャンセル

  • 2018/01/25 17:06

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

    キャンセル

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

  • ただいまの回答率 89.50%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

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