「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-戻る
--[[JavaScript>JavaScript#y99214ea]] > [[Node.js]]
--[[パッケージ管理システム]]

*目次 [#va507a84]
#contents

*概要 [#p34567be]
-Node Package Managerの略

-[[Node.js]]製パッケージ・マネージャ。

--開発環境系の管理~
[[Node.js]]用のパッケージを管理する。
---タスク・ランナー
---モジュール・システム
---テスト・スイート

--依存性解決~
また、[[jQuery]]や[[Bootstrap]]といったWeb画面開発用ライブラリも管理されている。
>npm はもともと [[Node.js]] 上で動作するライブラリを管理するためのもだが、~
[[Node.js]]スタイルのライブラリでもブラウザで実行可能な形式に変換して~
使用できるようになったため、npm さえあれば[[bower>#q464638b]]が無くても困らない状況が生まれた。 

**インストール [#maa2da9f]
[[コチラ>https://techinfoofmicrosofttech.osscons.jp/index.php?Cordova%20Tools%20Extension#q5eb6c3c]]を参考にする。

**バージョンアップ [#k746a6c7]
 npm update -g npm
 npm install -g npm@latest

※ Node.js自体のバージョンアップも必要。

**設定 [#n5693f3d]
NuGetで言うpackage.configの代わりに[[package.json>#k53f2eec]]を使用する。

*詳細 [#a036e44b]

**プロジェクトとして初期化 [#tff47d40]
JavaScriptライブラリを利用したいHTMLを~
格納するディレクトリのルートで以下のコマンドを実行。

-省略初期化
 npm init -y

-対話型インタフェースで初期化
 npm init

これにより、[[package.json>#k53f2eec]]が生成される。

**[[基本的なコマンド>npmのコマンド]] [#je11bf0c]

***[[インストール>npmのコマンド#ta17153d]] [#nb3126fd]

***[[アンインストール>npmのコマンド#uecfc950]] [#x8ba74e7]

***[[インストール・パッケージの表示>npmのコマンド#d47d5804]] [#x037a407]

**package.json [#k53f2eec]
詳しくは[[コチラ>#da9a65d5]]を参照。

***dependencies [#v14495cc]
-dependencies
--依存関係パッケージであることを意味する。
-- --saveオプションを使用した際にdependenciesで保存される。

-devDependencies
--開発用の依存関係パッケージであることを意味する。
--開発用の依存関係パッケージは、公開時に依存関係パッケージに含まれない。
-- --save-devオプションを使用した際にdependenciesで保存される。

-peerDependencies

--プラグインモジュール
---プラグインのケース
---モジュールのバージョンを固定する場合

--シングルトンモジュール
---プラグイン以外のケース
---モジュールがアプリケーション全体でひとつである場合

-optionalDependencies~
環境によって依存ライブラリが変わる場合に有効

-bundledDependencies~
以下のケースで使用するとのこと。
--you want to re-use a third party library that~
doesn't come from the npm registry or that was modified
--you want to re-use your own projects as modules
--you want to distribute some files with your module

**連携 [#kc3687e6]

***[[bower]]との連携 [#aab94c1b]
[[コチラ>bower]]を参考にする。

***[[webpack]]との連携 [#aab94c1b]
[[コチラ>webpack]]を参考にする。

**[[パッケージ開発>JavaScriptライブラリの作り方#h7ce4d67]] [#db0cbea1]

***[[npmパッケージの開発と公開]] [#kcbd50b7]

***[[npmプライベート・リポジトリ]] [#d1f3f627]

**[[トラブルシュート>npmのトラブルシュート]] [#hb85b51f]

*参考 [#vdb078e9]
-npm~
https://www.npmjs.com

-npmでminifyする。~
https://www.google.co.jp/search?q=npm+minify

**package.json [#da9a65d5]
-npm package.json 日本語版 取扱説明書~
http://liberty-technology.biz/PublicItems/npm/package.json.html

-Qiita
--package.jsonの中身を理解する~
https://qiita.com/dondoko-susumu/items/cf252bd6494412ed7847
--npmでnode.jsのpackageを管理する~
https://qiita.com/sinmetal/items/395edf1d195382cfd8bc

***dependencies [#nbd66080]
-ちゃんと使い分けてる? dependenciesいろいろ。 - Qiita~
https://qiita.com/cognitom/items/acc3ffcbca4c56cf2b95

-node.js - Advantages of bundledDependencies over normal dependencies in NPM - Stack Overflow~
https://stackoverflow.com/questions/11207638/advantages-of-bundleddependencies-over-normal-dependencies-in-npm/25044361#25044361

**問題点 [#w77817bd]
-Node.jsのパッケージマネージャ「npm」まわりで大混乱~
多くのビルドが一時的に破壊 - ZDNet Japan~
https://japan.zdnet.com/article/35080047/

-JavaScript Registryの今後 - from scratch~
https://yosuke-furukawa.hatenablog.com/entry/2019/06/17/191720

-https://twitter.com/kiyotoyamaura/status/1151297024177901569
>npmが突如更新されなくなる覚悟をしといたほうがいいかも。...

***本の虫: [#u2a26609]
-npmからkikとその他諸々が消されたまとめ~
https://cpplover.blogspot.com/2016/03/npmkik.html
-npm、一見無意味なパッケージを消したら1000件もの~
パッケージが依存するパッケージであったことが判明~
https://cpplover.blogspot.com/2016/08/npm1000.html
-NPMのESLintのパッケージにマルウェアが混入された問題~
https://cpplover.blogspot.com/2018/07/npmeslint.html
-npm社、社員を無責任に解雇~
https://cpplover.blogspot.com/2019/04/npm.html

***解決?(MSによる買収 [#xf3e87c4]
結構、話題になりました(2020/03/17)。

-Microsoftがパッケージ管理システム「npm」を買収、~
GitHubとの統合にかけるnpm創設者の思いとは? - GIGAZINE~
https://gigazine.net/news/20200317-microsoft-acquire-npm/

-GitHub、JavaScriptパッケージ管理のnpmを買収 - ITmedia NEWS~
https://www.itmedia.co.jp/news/articles/2003/17/news064.html

-マイクロソフト傘下GitHub、~
JavaScriptパッケージ管理のnpmを買収へ - CNET Japan~
https://japan.cnet.com/article/35150905/

-Publickey
--GitHubがnpmの買収を発表、~
JavaScriptのパッケージ管理サービス。~
将来的にはGitHubとnpmを統合へ~
https://www.publickey1.jp/blog/20/githubnpmjavascriptgithubnpm.html

--GitHub、npmの買収完了を発表。~
npmレジストリ基盤とプラットフォームへの投資など強化~
https://www.publickey1.jp/blog/20/githubnpmnpm.html

**npx [#x00fc8b3]
-知らないのは損!npmに同梱されている~
npxがすごい便利なコマンドだった | DevelopersIO~
https://dev.classmethod.jp/articles/node-npm-npx-getting-started/

-npxようやく理解した - Lambdaカクテル~
https://blog.3qe.us/entry/2019/10/17/150753

***Qiita [#z4e68e9a]
-npmとnpx。なにが違う?~
https://qiita.com/sivertigo/items/622550c5d8ec991e59a6
-npxでnodeモジュールを実行する~
https://qiita.com/tatakahashiap/items/1c4ab221c4993e7c4ebf
-npm 5.2.0の新機能! 「npx」でローカルパッケージを手軽に実行しよう~
https://qiita.com/tonkotsuboy_com/items/8227f5993769c3df533d

***zenn.dev [#h2ea0866]
-npxコマンドとは?何ができるのか?~
https://zenn.dev/ryuu/articles/what-npxcommand
-npm と npx の違いについて調べてみた (2020.12.29)~
https://zenn.dev/researcher_h/scraps/e47d707fb9c447

**OSSコンソーシアム [#u4923aac]
***開発基盤部会 Blog [#bf290db4]
-npm登録。SPAにPKCEを実装する処理をJavaScriptライブラリ化したい。~
https://www.osscons.jp/jogq56iuf-537/
-HTML / JavaScript / CSSな人を、npmでSPAな方面に引き込むには?~
https://www.osscons.jp/jotj393an-537/

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS