「[[.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/