「[[.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​.pad​Start()~
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と言うらしい。

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