パスを通すの意味はわかりますか?
Windows、Mac、Linux等のOS共通でターミナルを開いてPATHという変数を確認するとこのような文字列が格納されています。
例えばMacで下記のようなコマンドを入力すると:
で区切られたディレクトリ名らしきものがズラッと表示されますね。
Bash
1$ echo $PATH
2/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
何かしらのコマンドが実行された時、
PATH変数のディレクトリリストを確認し、これの左から順番に「実行ファイルないかー」と探しにいき、
もし実行ファイルが見つかればその実行ファイルを起動します。
となれば、gulpコマンドが実行出来る時、
PATHで指定したディレクトリ内にファイルの実態があるはずですよね。
探してみましょう。
Bash
1$ cd export PATH=/Users/myname/.npm-global/bin
2
3$ ls
4gulp
ありましたか?
質問文でgulpコマンドが利用出来たと言っているので、ファイルの実態が存在するはずです。
このディレクトリをPATHに登録すれば、gulpコマンドが使えるようになります。
(しっかし.npm-global
って凄い名前だな…ruccyさんがHomebrewで入れ直してねって言ってる理由がなんとなく分かった)
では、実際にパスを通しましょう。
こんな感じでパスの文字列に認識して欲しいディレクトリの文字列をくっつけてやれば、こうなるわけです。
Bash
1$ PATH=/Users/myname/.npm-global/bin:$PATH
2
3$ echo $PATH
4/Users/myname/.npm-global/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
しかしこれ、パス通ったはずなのに実行してくれない…
実は単に=
を使って代入しても意味がないのです。
export
というコマンドを使って、ターミナル全体(環境変数)に反映!という一手間を行う必要があります。
Bash
1# これを実行すればOK
2$ export $PATH
3
4# 変数宣言と環境変数の設定を同時に行う方法
5$ export PATH=/Users/myname/.npm-global/bin:$PATH
参考サイト: PATHを通すために環境変数の設定を理解する (Mac OS X)
ただしこれを閉じると、再度同じ作業を行わないといけません。
環境変数を書き換えても、ターミナルを閉じたりログアウトすると設定は消えます。
残念ですがこれはお約束です。
困りましたね、ターミナル開いた瞬間に読み込んで欲しいのだけど…
実はMacやLinuxはターミナルを開くと毎回~/.bash_profile
を実行するという仕様があります。
~/
とはホームディレクトリのことです。
Bash
1$ cd ~
2
3$ pwd
4/home/myname (/Users/mynameとかだったりするかもしれません)
エディタなんかで~/.bash_profile
というファイルを作ってみましょう。
今回はターミナル操作でベタッと作ってみます。
Bash
1$ echo "export PATH=/Users/myname/.npm-global/bin:$PATH" > ~/.bash_profile
2
3$ cd ~
4
5# 先頭がドットの隠しファイルを見るには-aオプションが必要
6$ ls -a
7.bash_profile
ざっと流しましたが以上です。
これを元に更に色々調べてみたり、あれこれ動かして確認してみてください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/16 01:55
2017/11/16 02:09
2017/11/16 05:52