[解決済み] npm グローバルパスのプレフィックス
質問
の挙動に戸惑い、いつもより慎重になっています。
npm
を使用した。
私はMacを使用しており、node.jsを以下の方法でインストールしました。
brew install node
.
を実行したいので
jslint.js
をコマンドとしてコマンドライン上で実行します。
jslint
私は、これを実現するための標準的な方法は
sudo npm install -g jslint
この出力で正常に実行されました。
$ sudo npm install -g jslint
npm http GET https://registry.npmjs.org/jslint
npm http 200 https://registry.npmjs.org/jslint
npm http GET https://registry.npmjs.org/jslint/-/jslint-0.1.9.tgz
npm http 200 https://registry.npmjs.org/jslint/-/jslint-0.1.9.tgz
npm http GET https://registry.npmjs.org/nopt
npm http 200 https://registry.npmjs.org/nopt
npm http GET https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz
npm http 200 https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz
npm http GET https://registry.npmjs.org/abbrev
npm http 200 https://registry.npmjs.org/abbrev
npm http GET https://registry.npmjs.org/abbrev/-/abbrev-l.0.4.tgz
npm http 200 https://registry.npmjs.org/abbrev/-/abbrev-1.0.4.tgz
/usr/local/share/npm/bin/jslint -> /usr/local/share/npm/lib/node_modules/jslint/
bin/jslint.js
[email protected] /usr/local/share/npm/lib/node_modules/jslint
└── [email protected] ([email protected])
以後
$ jslint ply.js
zsh: command not found: jslint
により
/usr/local/share/npm/bin
にないため、私の
$PATH
.
1) なぜ
brew
はインストールされません。
npm
bin
をpathに変換しますか?多分そうだと思いますが、何か
zsh
がそれを台無しにしています。どこでそれを見つけることができるかもしれませんか?
2) こうすればいいのでしょうか?(追加
:/usr/local/share/npm/bin
に、エクスポートされた
$PATH
の下にある
~/.zshrc
)
後で何か他のものをインストールする場合(Homebrewなどを使って)、パスを設定するためにzsh起動スクリプトに追記する必要があるので、この方法は正しくないような気がするのです。この特殊な例では、単に
npm install -g
のような)適切な場所に正しいシンボリックリンクを作らない。
/usr/local/bin
たぶん)。
の中に手動でシンボリックリンクを構築することになると思います。
/usr/local/bin
というのも、私の場合、問題があるプログラムはすべて、これで十分なはずです。
EDIT : この古い質問は人気がありますが、私の個人的なワークフローと、nodeのインストールとそのさまざまな依存関係を管理するための最善の方法の両方において、今では古くなってしまったので、2019年にこれを更新します。
私の個人的なワークフローは、現在、システムにnodeをインストールするためにnodejs.orgから取得したインストーラを使用しています。ファイルを管理する方法を一番良く知っているので、実は自作パッケージそのものよりも信頼しています。もし、あなたのシステムの node を 8.10 から 10.15 に変更したい場合、Mac でも Windows でも、単に nodejs.org からあなたの OS 用の 10.15 のインストーラをダウンロードするだけです。homebrewでインストールしたnodeをアップグレードしようとすると、私の経験では常により困難なアプローチであることが証明されています。
また、最大のポイントは、上記の npm install of jslint の例で示したような sudo の使用は非常に推奨されないということです:私は、自作パッケージはスーパーユーザーを使ってインストールしたり操作したりするべきではないと確信しています。自作パッケージはスーパーユーザーを使ってインストールしたり操作したりするべきではありません。
さらに、私はjslintよりもESLintを推奨しており、もう何年もjslintを使っていません。
どのように解決するのですか?
を拡張する
PATH
を使っています。
export PATH=/usr/local/share/npm/bin:$PATH
は悪くないと思います。とはいえ、そうする必要はないでしょう。
これを実行してください。
npm config get prefix
OS X でのデフォルトは
/usr/local
にバイナリをシンボリックリンクすることを意味します。
/usr/local/bin
で、これはすでにあなたの
PATH
(特にHomebrewを使用している場合)。
だから
-
npm config set prefix /usr/local
他のものであれば -
を使わないでください。
sudo
をnpmと一緒に使うことです。によると jslint docs を実行すればよいのです。npm install
となります。
npmをsudoでインストールした場合(
sudo brew install
で再インストールしてみてください。
brew install
. Homebrewは、あなたが
sudo
-自由である。
関連
-
[解決済み】npm 5で作成されたpackage-lock.jsonファイルはコミットするのでしょうか?
-
[解決済み] Angular CLI ng コマンドが Mac Os で見つかりません。
-
[解決済み] MacにJava JDKがインストールされているかどうかを確認するにはどうすればよいですか?
-
[解決済み] macOSアップデート後、Gitが動作しない(xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools)
-
[解決済み] npm installの-saveオプションは何ですか?
-
[解決済み] インストールされているnpmパッケージのバージョンを検索する
-
[解決済み] npm package.jsonファイルのdependencies, devDependencies, peerDependenciesの違いは何ですか?
-
[解決済み] Bowerとnpmの違いは何ですか?
-
[解決済み] Node.jsのnpmモジュールをアンインストールするにはどうすればよいですか?
-
[解決済み] 受信エラー:'Error: SSL Error: SELF_SIGNED_CERT_IN_CHAIN' を受信している。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】なぜこのマージが必要なのか、特に更新された上流をトピックブランチにマージする場合、コミットメッセージを入力してください。
-
[解決済み] Postgresのユーザが存在しない?
-
[解決済み] Yeomanインストール後の「yo: コマンドが見つかりません」を修正する方法
-
[解決済み] DYLD: レイジーシンボル
-
[解決済み] インストール後、Gulpコマンドが見つからない
-
[解決済み] zshでnpmインストール後にコマンドが見つからない
-
[解決済み] MacのApplication Loaderアプリはどこにありますか?
-
[解決済み] Macにsshpassをインストールする方法は?
-
[解決済み] Homebrewを再インストールする最も良い/安全な方法は何ですか?
-
[解決済み] bower コマンドが見つかりません。