私はいつもの行動よりも用心深くなっています。 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
jslint@0.1.9 /usr/local/share/npm/lib/node_modules/jslint
└── nopt@1.0.10 (abbrev@1.0.4)
その後
$ jslint ply.js
zsh: command not found: jslint
/usr/local/share/npm/bin
私の中にいないため$PATH
。
1)なぜbrew
グローバルnpm
bin
パスtoパスをインストールしなかったのですか?多分それはしましたが、何かzsh
がそれを台無しにしています。どこで見つけられますか?
2)これを行う必要がありますか?(私の下部に:/usr/local/share/npm/bin
エクスポートさ$PATH
れた~/.zshrc
)
後で何かをインストールする場合(Homebrewなどを使用して)、パスを設定するためにzsh起動スクリプトに追加する必要があるため、これは適切な方法ではないようです。この特定の例でnpm install -g
は、「適切な」場所に正しいシンボリックリンクを作成しないことの問題だと思います(/usr/local/bin
多分。
私がやることは手動で内部にシンボリックリンクを構築することだと思います /usr/local/bin
、私が問題を抱えているすべてのプログラムのにであり、それは私の目的にとって十分なはずです。
編集:私はこれを2019年に更新しています。この古い質問は人気がありますが、私の個人的なワークフローの点でも、ノードのインストールとさまざまな依存関係の管理に最善を尽くす方法の点でも古くなっています。
私の個人的なワークフローは、nodejs.orgから取得したインストーラーを使用してシステムにノードをインストールすることです。ファイルを管理する方法を最もよく知っているので、私は実際にはこれを自作パッケージ自体よりも信頼しています。システムノードを8.10から10.15に変更する場合は、MacとWindowsのどちらでも、OSの10.15用のnodejs.orgからインストーラーをダウンロードするだけです。私の経験では、homebrewを介してインストールされたノードをアップグレードしようとすることは、常により困難なアプローチであることが証明されています。
また、最大の注意点は、上記のjslintの例のnpm installで示したsudoの使用は非常に推奨されないことです。私は、自作のパッケージをインストールしたり、スーパーユーザーを使用して何らかの方法で操作したりしてはならないことを確信しています。それは必要ではないはずであり、ファイル許可の頭痛の種につながります!
さらに、jslintよりもESLintをお勧めします。jslintを何年も使用していません。