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

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

ただいまの
回答率

90.13%

"npm install"実行時にエラーが出ます

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 4
  • VIEW 44K+
退会済みユーザー

退会済みユーザー

node.jsをサーバーサイド言語として習得しようと最近勉強を始めたのですが、npmでのインストール方法に関してよく分からない点があります。

質問事項としてはnpm installの実行を自分が正しく行えているのかという点なのですが、実行時にターミナル上でエラーが確認できるので正しく実行していないのだと思われます。

環境と前提情報について

OSはMac OSXのYosemiteです。
npmのバージョンは3.5.3です。

vagrantで仮想マシーンを作り、以下のディレクトリー下をnode.jsの勉強用ディレクトリーとして複数のjsファイルを保存しております。

ユーザー/ユーザー名/vagrant/centos-65/study
※centos-65フォルダ直下にVagrantfileもあります。

ただ、仮想環境を作っているとはいえ、"vagrant ssh"で仮想マシーンにログインをして、作業をしていた訳ではありません。

普通にmacのターミナルで"npm install jade"のようなコマンドを実行しておりました。

また、unixコマンドやサーバー知識は乏しく、最近、触り出した程度なので、かなり根本的な部分でつまづいている気がしております。

コマンド実行時に出力されるエラー

npm WARN enoent ENOENT: no such file or directory, open '/Users/userName/vagrant/centos-65/study/package.json'
npm WARN study No description
npm WARN study No repository field.
npm WARN study No README data
npm WARN study No license field.

上記のエラー内容の意味は文字通りだとは思うものの、それがどういうことなのかと対象法が分かりません。

また、よくわかっていないのが、"npm install"コマンドを実行する際のカレントディレクトリーです。
このコマンドを実行する際のカレントディレクトリーはどこでも良いのでしょうか?

npmにはグローバルインストールとローカルインストールがあるということは、
node.jsの勉強用に読んでいる書籍で認識しており、今回はローカルインストールを行おうとしておりました。

ターミナルでjadeコマンドを実行をすると、
以下のようにエラーが出たので、うまくインストール出来ていないのだと思われます。

zsh: command not found: jade

ただ、jsファイル内で以下のようにjadeモジュールをrequireしてもエラーは出ませんでした。

var jade = require("jade");

また、ユーザー/ユーザー名 直下にnode_modulesディレクトリーが作られており、その中にいろんなフォルダが作成されているのも確認は出来ております。

他には、ユーザー/ユーザー名/vagrant/centos-65/study 直下にもnode_modulesディレクトリーが作られており、その中にもたくさんのフォルダが作られております。

黒い画面の操作に不慣れであったり、unix関連の知識不足で混乱しているのですが、
npm installの実行方法と現状起きていることをどのように認識すれば良いのかを
ご教授いただけると非常に助かりますm(_ _)m

  • 気になる質問をクリップする

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 1

checkベストアンサー

+9

また、よくわかっていないのが、"npm install"コマンドを実行する際のカレントディレクトリーです。 
このコマンドを実行する際のカレントディレクトリーはどこでも良いのでしょうか?

何処でも良いです。
今いるディレクトリにnode_modulesディレクトリが作られ、インストールしたパッケージが突っ込まれます。

JavaScriptファイル内でrequire('xxx');を行った場合。
そのファイルが居るディレクトリにnode_modules/xxxというパッケージはあるか?あれば読み込む。
無ければ一つ上の階層のnode_modules/xxxはあるか?無ければ…という風に上の階層に遡っていきます。
本当に無ければグローバルインストールしたパッケージを探します。

ターミナルでjadeコマンドを実行をすると、 
以下のようにエラーが出たので、うまくインストール出来ていないのだと思われます。

それはローカルへインストール(npm install jade)したからだと思います。

npmで管理されているJadeやGulpのような一部パッケージは
グローバルへインストール(npm install -g jade)した場合、コマンドを拡張してくれます
確かにグローバルへインストールしたにも関わらず使えなければ、Nodeやnpmに対するパスがちゃんと通ってないのでその辺を見なおして見て下さい。

npm WARN enoent ENOENT: no such file or directory, open '/Users/userName/vagrant/centos-65/study/package.json'

npm initでまだpackage.jsonを作成してないからでしょうね。
npmではWARNは「一応読んどけ」程度の致命度なので、正常終了と似たようなもんです。

package.jsonを作成しておくと、
npm install --save xxxとセーブ付きでインストールすることで、
インストールしたパッケージをpackage.json内に保存してくれます。

node_modulesフォルダをバッサリ消した後に、npm installと打ち込んでみてください。
保存したパッケージを全て一撃でインストールしてくれます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/01/20 22:02

    >"npm install"コマンドを実行する際のカレントディレクトリー
    わかり易さを重視する為にあえて「どこでも良い」と書きました。
    実運用ではプロジェクトルートにpackage.jsonファイルを置いて、
    「npm install」一撃で依存ライブラリを全てインストールするというのが一般的のようです。

    キャンセル

  • 2016/01/20 23:13

    非常に分かりやすい回答ありがとうございます!頂いた回答を読んで理解出来たと思いますが、明日、実際に職場に行った時に試したいと思います。本当に助かりました。ありがとうございました!

    キャンセル

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

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