NPMにCLIプロジェクトを発行する
この投稿では、私の小さな静的サイトジェネレータツールをリリースします.OSD_SSG , to NPM パッケージマネージャー.
パッケージバージョンの割り当て
パッケージを公開する前に、次のようにユニークなバージョンを割り当てる必要がありますSemantic versioning 要件多くの依存関係を持つシステムでは、依存関係の仕様が厳しすぎたり、ゆるくなったりすると、依存関係のある地獄の危険にさらされます.意味論的バージョン管理は、どのようにバージョンが割り当てられて、増加するかを標準化することによって、問題の解決として導入されました.x . y . zのバージョン形式を考えてください.バグ修正は、パッチのバージョンは、後方互換性のあるAPIの追加/変更増加マイナーバージョン、および後方互換性のないAPIの変更は、主要なバージョンをインクリメントAPI APIに影響を与えません.
ローカルファイルへのコマンド名のマッピング
その名前でプロジェクトを呼び出し可能にするには、メインエントリファイルを
CLIをローカルでテストする
npm-link 私たち自身のパッケージをインストールする前にそれをテストするために便利です.これを実行するとグローバルにシンボリックリンクが作成されます
絶対パスへの相対パスの変更.
さて、このプログラムはプロジェクトディレクトリ内で呼び出されるとうまく動作します.でももし
これは、プロジェクトディレクトリに相対的なファイルパスを読んでいる場所に1つの場所があるためです.ユーザーがプログラムを別のディレクトリに呼び出すとき
修正するには、絶対パスにパスを変更する必要があります
パッケージバージョン
バージョンは現在
Gitの'タグ'は重要なプロジェクトの歴史のポイントを示すための方法です.それは私たちは簡単に将来的に再訪することができます過去にポイントを修正することができます.
npm version 私たちのパッケージのバージョンをバンプする本当に良いツールです.これは、gitタグだけでなく
NPMへのリリース
NPMのユーザーとして、あなた自身のプロジェクトで使用するunscopedパッケージを作成することができますし、他の人のためのNPMのパブリックレジストリにそれらを公開します.unscopedパッケージは常にpublicで、パッケージ名だけで参照されます.
NPM CLIを使用してパッケージをリリースするには、まだない場合は端末で認証を行う必要があります.
それを試してみてください!
興味があれば、このパッケージを右側で試してみてください.
結論
もう一つの素晴らしい研究室、私はosd 600が好きです!
パッケージバージョンの割り当て
パッケージを公開する前に、次のようにユニークなバージョンを割り当てる必要がありますSemantic versioning 要件多くの依存関係を持つシステムでは、依存関係の仕様が厳しすぎたり、ゆるくなったりすると、依存関係のある地獄の危険にさらされます.意味論的バージョン管理は、どのようにバージョンが割り当てられて、増加するかを標準化することによって、問題の解決として導入されました.x . y . zのバージョン形式を考えてください.バグ修正は、パッチのバージョンは、後方互換性のあるAPIの追加/変更増加マイナーバージョン、および後方互換性のないAPIの変更は、主要なバージョンをインクリメントAPI APIに影響を与えません.
ローカルファイルへのコマンド名のマッピング
その名前でプロジェクトを呼び出し可能にするには、メインエントリファイルを
bin
インpackage.json
. 私のプロジェクトでは、JavaScriptをビルドしましたindex
ファイルを実行可能です. "main": "./lib/src/index.js",
"bin": {
"osd_ssg": "./lib/src/index.js"
},
実行可能ファイルの環境を指定する// add this to the top of the index file to specify the environment it rune on
#!/usr/bin/env node
CLIをローカルでテストする
npm-link 私たち自身のパッケージをインストールする前にそれをテストするために便利です.これを実行するとグローバルにシンボリックリンクが作成されます
node_modules
を返します.npm link
// running the local cli using its name
osd_ssg -h
// unlink it when you are done testing
npm unlink osd_ssg
絶対パスへの相対パスの変更.
さて、このプログラムはプロジェクトディレクトリ内で呼び出されるとうまく動作します.でももし
cd
プロジェクトから再度呼び出して、エラーが発生します.ENOENT: no such file or directory, stat 'styles/index.css'
. これは、プロジェクトディレクトリに相対的なファイルパスを読んでいる場所に1つの場所があるためです.ユーザーがプログラムを別のディレクトリに呼び出すとき
styles/index.css
したがって、ユーザの作業ディレクトリに相対的であるため、見つかりません.修正するには、絶対パスにパスを変更する必要があります
path.resolve
ノードからpath
モジュールです. stylesheet: {
...
// returns an absolute path
default: path.resolve(__dirname, '../styles/index.css'),
},
パッケージバージョン
バージョンは現在
0.x.y
, それは積極的な開発の下で、物事はいつでも破ることができると生産に適していないことを意味します.今私はプログラムを快適にし、パッケージを公開する準備が整いました.パッケージのバージョンを増やす必要があります.Gitの'タグ'は重要なプロジェクトの歴史のポイントを示すための方法です.それは私たちは簡単に将来的に再訪することができます過去にポイントを修正することができます.
npm version 私たちのパッケージのバージョンをバンプする本当に良いツールです.これは、gitタグだけでなく
package.json
.// bump the major version, from 0.1.0 to 1.0.0
npm version major
NPMへのリリース
NPMのユーザーとして、あなた自身のプロジェクトで使用するunscopedパッケージを作成することができますし、他の人のためのNPMのパブリックレジストリにそれらを公開します.unscopedパッケージは常にpublicで、パッケージ名だけで参照されます.
NPM CLIを使用してパッケージをリリースするには、まだない場合は端末で認証を行う必要があります.
npm adduser
// publish the package
npm publish
ブーム!Published pakage それを試してみてください!
興味があれば、このパッケージを右側で試してみてください.
npm exec -- osd_ssg -i folder
結論
もう一つの素晴らしい研究室、私はosd 600が好きです!
Reference
この問題について(NPMにCLIプロジェクトを発行する), 我々は、より多くの情報をここで見つけました https://dev.to/dukemanh/publish-a-cli-project-to-npm-10mcテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol