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

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

ただいまの
回答率

88.59%

npmとyarnは何が便利なのでしょうか?

解決済

回答 2

投稿

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

pypanman

score 15

node.jsのパッケージ管理マネージャーであるnpmyarnについてです。

パッケージを管理するためのツールであることは分かりますが、そもそもなぜパッケージを管理する必要があるのでしょうか?

  • パッケージの依存関係がpackage.jsonに記載してあるので、第三者などの環境での再現が容易。
  • 言語やパッケージのバージョンを管理し動作を保証する。

上記など考えてみたのですが、私は趣味でプログラミングをしている程度です。
実務としての開発などの経験がまったくないので、これ以上思い浮かびませんでした。

初歩的で恐縮ですが、間違いのご指摘など、ご回答いただけたらと思います。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 2

+2

自分が趣味で作っているだけだからライブラリのバージョン管理は必要ない、と思っているかもしれませんが、数カ月後の自分は当時の自分とは違うものなので、作ったものを資産にしておきたいならできる限り記憶に頼るような管理方法は避けたほうがいいと思いますよ。
同じくgit管理もしておくべきだと個人的には考えます。

また、 package.json があればherokuなどのアプリケーションプラットフォーム(PaaS)にそのままアプリケーションを配置できるようになります。
趣味としてサービスを動かす上でも重要だと思いますよ。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2018/11/05 02:05 編集

    バージョン管理が必要ない、とは全く思っていません。

    >作ったものを資産にしておきたいならできる限り記憶に頼るような管理方法は避けたほうがいいと思いますよ。
    こちらも、ごもっともだと思います。

    質問の意図としては、どちらかと言うと、自分の想定した以外のメリットを知りたい、といったところです。
    人間は忘れっぽい生き物であり、そこから生まれる問題を防ぐことが出来ることこそ、バージョン管理ツールの最大の利点である、ということならそれで納得です。

    キャンセル

  • 2018/11/05 02:08

    package.jsonがあれば npm install を叩けばいいよね、って考えなくて済むから楽ですよね。
    楽したくありませんか?

    キャンセル

  • 2018/11/05 02:16

    1つ1つパッケージをインストールするのはたしかに嫌ですねぇ。

    キャンセル

checkベストアンサー

+1

「保証する」のはもちろんそうなのですが、
むしろ「不具合が発生した時の再現させやすい」というメリットが大きいですね。
不具合は再現するまでが大変で、再現さえさせてしまえば対策も浮かびますし、修正後の確認も容易ですからね。

現場で手順書を元に環境構築をしていた時代がありましたが、
本番環境や他のメンバーの所で出てきた不具合を、
持ち帰って検証した時に不具合が出ないという超困るケースがあります。

コードを見れば「なんとなくここが悪いのかな?」という箇所はわかるものの、
「直ったという保証」は自分の環境内ではできず、
「本番環境にリリースしてみる」や「他人に修正箇所を適用してもらい確認してもらう」などといったIT全否定みたいな行動が必要になります。


パッケージ管理というのはもちろんですが、
VagrantやAnsible、Dockerなどのツールを駆使して、コードとして書かれている事以外の環境構築は一切やらんぞ、これでシステムが動くようにしろ
…という発想はとても重要です。

これを一気通貫して行っているプロジェクトでは
「ぼくの環境では再現しませんでした」問題が極めて少なくなります。
いくつか転職を重ね、そういうプロジェクトにジョインしましたが、こういった問題は凄く減りましたね。

今後業務とかで他のエンジニアと組むケースがある場合、その辺聞いてみてください。
もし何も対策してない、考えてない、ツール?なにそれ?みたいなメンバーだと炎上する可能性が高いので注意してください。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2018/11/05 21:06 編集

    ご回答ありがとうございます。
    大変勉強になります。

    > むしろ「不具合が発生した時の再現させやすい」というメリットが大きいですね。

    なんで動かないのか分からないより、なんで動いてるのか分からないほうが怖いですよね。

    > もし何も対策してない、考えてない、ツール?なにそれ?みたいなメンバーだと炎上する可能性が高いので注意してください。

    弊社はgit?何それ?レベルです。ははは。
    私も人のこと言えませんが。

    キャンセル

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

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

関連した質問

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