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

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

新規登録して質問してみよう
ただいま回答率
85.48%
npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

254閲覧

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

pypanman

総合スコア15

npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2018/11/04 10:36

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

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

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

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

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

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

投稿2018/11/04 13:12

mather

総合スコア6753

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pypanman

2018/11/04 17:06 編集

バージョン管理が必要ない、とは全く思っていません。 >作ったものを資産にしておきたいならできる限り記憶に頼るような管理方法は避けたほうがいいと思いますよ。 こちらも、ごもっともだと思います。 質問の意図としては、どちらかと言うと、自分の想定した以外のメリットを知りたい、といったところです。 人間は忘れっぽい生き物であり、そこから生まれる問題を防ぐことが出来ることこそ、バージョン管理ツールの最大の利点である、ということならそれで納得です。
mather

2018/11/04 17:08

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

2018/11/04 17:16

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

0

ベストアンサー

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

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

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


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

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

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

投稿2018/11/05 04:25

miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pypanman

2018/11/05 12:06 編集

ご回答ありがとうございます。 大変勉強になります。 > むしろ「不具合が発生した時の再現させやすい」というメリットが大きいですね。 なんで動かないのか分からないより、なんで動いてるのか分からないほうが怖いですよね。 > もし何も対策してない、考えてない、ツール?なにそれ?みたいなメンバーだと炎上する可能性が高いので注意してください。 弊社はgit?何それ?レベルです。ははは。 私も人のこと言えませんが。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問