「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -戻る --[[npm]] --[[JavaScriptライブラリの作り方]] *目次 [#bbf5ff71] #contents *概要 [#t46b2b79] [[NuGet同様>https://techinfoofmicrosofttech.osscons.jp/index.php?NuGet%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%AE%E9%96%8B%E7%99%BA%E3%81%A8%E5%85%AC%E9%96%8B]]、[[npm]]にもパッケージを登録してみる。 *詳細 [#x10eea3f] **[[npm]]アカウントを作成する。 [#t6dbace4] ***サインアップ [#h507a469] https://npmjs.org/signup 以下をメモ。 -username -password -email address ***npm adduser [#x0cafb59] -ターミナルからnpm adduserを実行 > npm adduser Username: XXXXX Password: YYYYY Email: (this IS public) ZZZZZ@ZZZZZ -~/.npmrcにtoken情報が書き込まれ、 -[[npm]]モジュールを公開する準備が整う。 **モジュールを実装する [#zd748b59] ***package.json [#ib16bc43] モジュールの名前や、依存関係などを記載する(nspec的なファイル)。 |#|プロパティ|説明|h |1|private|公開可否をtrue・falseで設定| |2|name|重複禁止のモジュール名で英数小文字とハイフンだけ使用可能&br;(https://www.npmjs.com/package/:name)| |3|version|n.n.n| |4|main|このモジュールの主となるスクリプトファイル。&br;requireできるモジュールを作る場合は必須。| |5|dependencies|依存[[npm]]モジュール| *** *.jsファイル [#zb50a777] -[[モジュール実装方法>JavaScriptライブラリの作り方#n340ee01]] -タイプ --ライブラリ的なモジュール: ---index.js ---indexは既定値ではなく、実際は、~ package.jsonのmainプロパティで指定したファイルを読む --サーバやコンソールのコード: ---app.js ---node appで起動する。 --コマンドライン・ツール:~ 以下が参考になる。 ---コマンドラインで動作する npm ライブラリを作る - Qiita~ https://qiita.com/star__hoshi/items/51c6cc719793abfb337d ---Node で作るオレオレ CLI と npm への登録までの道のり - Qiita~ https://qiita.com/astronaughts/items/0ada9ad61a8956f647f0 --gruntのplugin: ---... *** *.d.tsファイル [#x19e75e3] -[[TypeScriptの型定義ファイル>https://techinfoofmicrosofttech.osscons.jp/index.php?TypeScript#ja140013]] **ライブラリとして公開し更新を行う。 [#xf46edf0] npm publishで公開と更新を行う。 ***公開 [#j250cd6c] -個人スコープ or スコープなし npm publish -組織スコープ~ では既定値が、privateになるので。 --private npm publish --public npm publish --access public ***更新 [#w9ec36a1] npm publish ※ 公開と同じ。~ ただしversion番号は上げておく。 **公開したライブラリを利用 [#wb823ae8] ***[[require構文で利用>JavaScriptライブラリの作り方#g26a2d1c]] [#e61f4d4d] https://github.com/OpenTouryoProject/SampleProgram/tree/master/PkgMgr/npm/console-app1 https://github.com/OpenTouryoProject/SampleProgram/tree/master/PkgMgr/npm/ossc/console-app1 ***[[module構文(import)で利用>JavaScriptライブラリの作り方#y4ef07bb]] [#u20bdadb] ... ***[[webpackで利用>JavaScriptライブラリの作り方#jba2efa6]] [#yb1a7129] https://github.com/OpenTouryoProject/SampleProgram/tree/master/PkgMgr/npm/browser-app1 https://github.com/OpenTouryoProject/SampleProgram/tree/master/PkgMgr/npm/ossc/browser-app1 *参考 [#h40a2321] -自作の非公開npmモジュールの作成と共通ライブラリ化~ https://www.usagi1975.com/23feb172352/ -npm でコマンド登録するパッケージ作ってみた~ http://var.blog.jp/archives/70303113.html **Qiita [#a7d4d960] -3分でできるnpmモジュール~ https://qiita.com/fnobi/items/f6b1574fb9f4518ed520 -grunt-pluginの作り方と解剖~ https://qiita.com/fnobi/items/5590e7e92b4f2bd81d04 -初めてのnpm パッケージ公開~ https://qiita.com/TsutomuNakamura/items/f943e0490d509f128ae2 -npmのorganizationアカウント運営~ https://qiita.com/zprodev/items/a257510899e7f13c0b56 **left-pad [#i176f2e5] [[話題となった事もアリ>npm#w77817bd]]、既にdeprecatedだが、~ ミニマムな実装事例として参考にできる。 -left-pad/left-pad: String left pad~ deprecated, use String.prototype.padStart()~ https://github.com/left-pad/left-pad **test-library1 [#hade7500] ***ossc-test-library1 [#lb1c5d0d] OSSコンソーシアム 開発基盤部で登録したテスト用ライブラリ -SampleProgram/PkgMgr/npm/ossc at master · OpenTouryoProject/SampleProgram~ https://github.com/OpenTouryoProject/SampleProgram/tree/master/PkgMgr/npm/ossc --ossc-test-library1 --console-app1 --browser-app1 -ossc-test-library1 - npm~ https://www.npmjs.com/package/ossc-test-library1 ***touryo-test-library1 [#n2af44b9] 前述のライブラリを組織スコープの名前空間に対応させたもの。 -SampleProgram/PkgMgr/npm/touryo at master · OpenTouryoProject/SampleProgram~ https://github.com/OpenTouryoProject/SampleProgram/tree/master/PkgMgr/npm/touryo --touryo-test-library1 --console-app1 --browser-app1 -@touryo/test-library1 - npm~ https://www.npmjs.com/package/@touryo/test-library1 ※ npmでは、名前空間対応させたライブラリをscoped packagesと言うらしい。