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

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

ただいまの
回答率

90.51%

  • Node.js

    1870questions

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

  • gulp

    277questions

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

  • Sass

    262questions

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

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

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 900

roronoazoro

score 61

前回質問した問題がいまだに解決しないので再度整理して質問させてください。
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/23 18:36

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

    キャンセル

  • 2018/01/23 20: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` としてアンインストールしてしまいましょう
    アンイストールした後はちゃんと残ってないことを確認しましょう

    キャンセル

  • 2018/01/23 21:11

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

    キャンセル

  • 2018/01/23 22:41 編集

    このエラーはおかしいですね
    ちょっと詳細が欲しいので今から書くコマンドの返り値が欲しいです

    ```
    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ですか?

    キャンセル

  • 2018/01/24 09:49

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

    キャンセル

  • 2018/01/24 11: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はなんだったんでしょうか?

    キャンセル

  • 2018/01/24 18: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が残ってしまっている場合はどのように削除すればいいでしょうか・・?
    よろしくお願いします。

    キャンセル

  • 2018/01/24 19:01 編集

    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に入れたコマンド自体を目分で消していくしかないと思います

    キャンセル

  • 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で質問しよう!

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

関連した質問

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

  • Node.js

    1870questions

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

  • gulp

    277questions

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

  • Sass

    262questions

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