簡単なノードを作りましょう.JI CLIアプリケーション
皆さんこんにちは!あなたが無事であることを望んでください.
今日、我々はすぐにノードを作成する方法を見に行くつもりです.JS CLIアプリケーション.これは真の初心者のポストです.ノードの作成経験がある場合.JS CLIアプリケーション、そして、私はあなたがここからより多くを学ぶと思いません.あなたはいつも読んで見ることができる.何か新しいことを学ぶかもしれません.
今ではそれは邪魔です.始めましょう.
CLIはコマンドラインインターフェイスです.より良い理解は、あなたのコンピュータでそれを端末と呼ぶことによって得られます.CLIアプリは、端末で動作するアプリです.最小限の視覚効果、最大の効率と生産性はCLIアプリのtaglineです.
うーん、私はノードに良い導入されることについて考えました.JS CLIアプリケーション.最もよく使われるCLIコマンドの一つは
ノード.jsは端末(またはブラウザの外部)のJavaScriptランタイムです.JavaScript開発者が彼らの魅力的なJavaScript知識で完全に機能したバックエンドシステムをつくるのを許すことは、テクノロジーの素晴らしい部分です.続きを読むhere .
パッケージマネージャー.1000のオープンソースのパッケージを試してみることができますし、偉大なものを構築するために使用します.簡単にインストールして起動すると、任意のJS開発者のツールボックスで素晴らしいツールです.
あなたがNPMが考えると思う楽しい事実
それは今のところだと思う.何かを作りましょう.
最初にNLSと呼ばれるフォルダを作成します.
ラン
あなたのための運動
我々がする必要がある最初のことは
ノードのAPIドキュメントに移動できます.私たちが使用できるものを参照してください.訪問Here . あなたが持っているバージョンについては、次のとおりです.14歳を走ります.X LTSバージョン.だから私はそれを使用します.左側のサイドバーには、別の標準ライブラリとAPIが使用できます.透視する.ファイルシステムと呼ばれるものが表示されます.それをロードします.それは広大な広大な文書です.圧倒的な感じをするな.あなたが先に行くとreaddirを検索できます.の3つのバージョンがあります
1 )コールバックベース.Doc
2 )同期readdir.Doc
3)約束ベース.Doc
それらを読んでください.すべてを理解する必要はありません.あなたがそれを読んで、違いの考えを得ることは本当に良いです.コールバックベースのものを使います.私はおそらく大きなプロジェクトの約束ベースのアプローチを好むでしょう.コードを書きましょう.
fsモジュールを必要として起動します.(私たちはECMAScriptモジュールシステムを使うことができます.これは今では広く入手可能です.また、ノードパッケージをインポート/エクスポートすることを期待しています.more 興味があれば)
今すぐにパッケージを使用してディレクトリです.ソンソンラン
これはあなたが今できることを意味する必要があります
エキサイティング.これはディレクトリ内のファイルとフォルダの配列です.wohoo.ほとんど、ほとんど.つの重要な点に注意してください.配列です.すべてのファイルは、同じ緑の色で着色されます.それを修理しましょう.コンソール出力を色にチョークをインストールしましょう.チョークは、ターミナルスタイリングヘルパーです.これは、アプリケーションのコンソールログ/スタイル/色にシンプルなラッパーを提供します.Chalk
コードを変更
私が作りたいもう一つの変更は、議論を受け入れることです.
CLIで渡された引数をどのように読み込むことができますか?私たちは
うまくいきます.
よく.CLIアプリケーションがあります.これを実際にNPMに配備することができます.NPMにログインして実行することができます
今日、我々はすぐにノードを作成する方法を見に行くつもりです.JS CLIアプリケーション.これは真の初心者のポストです.ノードの作成経験がある場合.JS CLIアプリケーション、そして、私はあなたがここからより多くを学ぶと思いません.あなたはいつも読んで見ることができる.何か新しいことを学ぶかもしれません.
今ではそれは邪魔です.始めましょう.
私たちは何を建てていますか。
CLIはコマンドラインインターフェイスです.より良い理解は、あなたのコンピュータでそれを端末と呼ぶことによって得られます.CLIアプリは、端末で動作するアプリです.最小限の視覚効果、最大の効率と生産性はCLIアプリのtaglineです.
うーん、私はノードに良い導入されることについて考えました.JS CLIアプリケーション.最もよく使われるCLIコマンドの一つは
ls
コマンド.ノードを使って再生しましょう.js私たちはnls
.貿易の道具
ノード。js
ノード.jsは端末(またはブラウザの外部)のJavaScriptランタイムです.JavaScript開発者が彼らの魅力的なJavaScript知識で完全に機能したバックエンドシステムをつくるのを許すことは、テクノロジーの素晴らしい部分です.続きを読むhere .
NPM -パッケージマネージャ
パッケージマネージャー.1000のオープンソースのパッケージを試してみることができますし、偉大なものを構築するために使用します.簡単にインストールして起動すると、任意のJS開発者のツールボックスで素晴らしいツールです.
あなたがNPMが考えると思う楽しい事実
Node Package Manager
, それはほとんどの人が作る誤解です.それは実際には“NPMは頭字語ではない”のための再帰的なbacronymic略語です.https://github.com/npm/cli それは今のところだと思う.何かを作りましょう.
最初にNLSと呼ばれるフォルダを作成します.
cd
NLSに.ノードとNPMの設定を確認します.ラン
npm init -y
. これはパッケージを作成します.JSONこれは、アプリケーションの設定ファイルです.それはあなたが使用している依存関係、名前、説明、はるかに一覧表示されます.あなたのための運動
-y
? 我々がそうしないならば、何が起こります.我々がする必要がある最初のことは
index.js
NLSディレクトリで.クール.ノードのAPIドキュメントに移動できます.私たちが使用できるものを参照してください.訪問Here . あなたが持っているバージョンについては、次のとおりです.14歳を走ります.X LTSバージョン.だから私はそれを使用します.左側のサイドバーには、別の標準ライブラリとAPIが使用できます.透視する.ファイルシステムと呼ばれるものが表示されます.それをロードします.それは広大な広大な文書です.圧倒的な感じをするな.あなたが先に行くとreaddirを検索できます.の3つのバージョンがあります
readdir
我々の使用のために利用できる機能.1 )コールバックベース.Doc
2 )同期readdir.Doc
3)約束ベース.Doc
それらを読んでください.すべてを理解する必要はありません.あなたがそれを読んで、違いの考えを得ることは本当に良いです.コールバックベースのものを使います.私はおそらく大きなプロジェクトの約束ベースのアプローチを好むでしょう.コードを書きましょう.
fsモジュールを必要として起動します.(私たちはECMAScriptモジュールシステムを使うことができます.これは今では広く入手可能です.また、ノードパッケージをインポート/エクスポートすることを期待しています.more 興味があれば)
const fs = require('fs')
次にreaddir関数を使用します.readdirは3つの引数を受け取ります.最初のパスはパスです.これは内容を読みたいディレクトリのパスです.番目はオプションオブジェクトです.オプションがありますencoding
and withFileType
. 注意.我々はそれを使用します.最後は、readdir実行後のコードを実行できるコールバック関数です.コールバックは2つの引き数を受け入れる.err
and files
. わかりました.// process.cwd() is the way by which node understands the
// current working directory. We will change it soon.
// Give me 2 minutes :)
fs.readdir(process.cwd(), (err, files) => {
if(err) {
console.error('something went wrong!');
return;
}
console.log(files)
})
どうやってそれをテストするのですか?まあノードは簡単になります.パッケージに行きなさい.JSONその中のどこか、JSON構造を壊さずに// package.json
// You can replace nls with whatever you want. This is what
// your ls command is going to be. Get creative.
"bin": {
"nls": "index.js"
},
次のインデックスに戻る.JSとそれを実行可能にするためにshebangを追加します.あなたのJSファイルの最初の行でなければなりません.#!/usr/bin/node
Shebangはどのインタプリタが使用するかを伝えます.ノードを使用します.今すぐにパッケージを使用してディレクトリです.ソンソンラン
npm install -g .
( NPM関連も同様です)これはあなたが今できることを意味する必要があります
nls
端末で何かを見てください.好きなものエキサイティング.これはディレクトリ内のファイルとフォルダの配列です.wohoo.ほとんど、ほとんど.つの重要な点に注意してください.配列です.すべてのファイルは、同じ緑の色で着色されます.それを修理しましょう.コンソール出力を色にチョークをインストールしましょう.チョークは、ターミナルスタイリングヘルパーです.これは、アプリケーションのコンソールログ/スタイル/色にシンプルなラッパーを提供します.Chalk
npm install --save chalk
では、次のオプションオブジェクトを使いましょうreaddir
関数.コードを変更
readdir(process.cwd(), { withFileTypes: true },...
// no changes here..
)
withfiletypesは、私たちが返すファイルがタイプのクラスであることを保証しますfs.Dirent
. これはノードファイルオブジェクトで、ここでは非常に普通の特定のプロパティとメソッドを持っています.fs.Dirent . つは、方法の一つですfs.isDirectory()
を返します.あなたが名前から得るように.ディレクトリかどうかをチェックするのに便利です.それを含めましょう.関数の変更//index.js
readdir(process.cwd(), { withFileTypes: true }, (err, files) => {
if (err) {
log(chalk('ERROR'));
}
files.forEach((file) => {
if (file.isDirectory()) {
log(chalk.blueBright(file.name));
} else {
log(chalk.whiteBright(file.name));
}
});
});
うーん.さあ実行しましょう.保存とタイプnls
あなたの端末に.フォルダは青い色で、ファイルは白です.ああ.私が作りたいもう一つの変更は、議論を受け入れることです.
ls
引数とリストのファイルとフォルダのパスを取ることができます.フォー.Linuxマシンで.ls /home/{usrname(replace with your usernam)}
ディレクトリ内のファイルを一覧表示できます.それを加えましょう.CLIで渡された引数をどのように読み込むことができますか?私たちは
process.argv
値.注意process.argv
が配列です.最初の2つの値は、お客様のシステムのノードのインストールに関連しています.第三の価値を受け入れるprocess.argv[2]
. コードを変更する
const lsArgs = process.argv[2]
const fileDirectory = lsArgs ? lsArgs : process.cwd();
readdir(fileDirectory, { withFileTypes: true }, (err, files) => {
if (err) {
log(chalk('ERROR'));
}
files.forEach((file) => {
if (file.isDirectory()) {
log(chalk.blueBright(file.name));
} else {
log(chalk.whiteBright(file.name));
}
});
});
それは簡単だった.もし存在しているか、cwd ()を使用しているなら、argをとってください.wohoo.私たちは何かを持っている.もう一つの改善は、我々は我々のリストから隠しフォルダを隠すことができるということです.このチェックにはregexを使用できます.好きなものfiles = files.filter((file) => !/(^|\/)\.[^\/\.]/g.test(file.name));
うまくいきます.
よく.CLIアプリケーションがあります.これを実際にNPMに配備することができます.NPMにログインして実行することができます
npm deploy
そこまでそれを得るために.これはあまりにも長くなってしまい、ここでの展開には使用しません.インデックス全体の追加下記参照.どうか私にあなたの考えを知らせてください.#!/usr/bin/env node
const fs = require('fs');
const chalk = require('chalk');
const { log } = console;
const { readdir } = fs;
const lsArgs = process.argv[2];
const fileDirectory = lsArgs ? lsArgs : process.cwd();
readdir(fileDirectory, { withFileTypes: true }, (err, files) => {
files = files.filter((item) => !/(^|\/)\.[^\/\.]/g.test(item.name));
if (err) {
log(chalk.red('ERROR'));
return;
}
files.forEach((file) => {
if (file.isDirectory()) {
log(chalk.blueBright(file.name));
} else {
log(chalk.whiteBright(file.name));
}
});
});
Reference
この問題について(簡単なノードを作りましょう.JI CLIアプリケーション), 我々は、より多くの情報をここで見つけました https://dev.to/vishnup95/let-s-build-a-simple-node-js-cli-application-1l9cテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol