Node.jsでは、ライブラリのように再利用可能な機能をモジュールとしてまとめることができます。パッケージとして切り分けておくことで、require()関数で容易に取り込んで利用 가능합니다。
一、モジュールの構造を作成
1.プロジェクト用のフォルダ(例:textfilter)を作成します
2.textfilterフォルダ配下に censortext.js、package.json、README.md の3ファイルを作成します
1)、censortext.jsには、文字列中の特定単語をアスタリスクで置換する関数を実装します。
var prohibitedTerms=["angry","cruel","hate"];
var userDefinedTerms=[];
function filterText(inputText)
{
for(var i=0; i<prohibitedTerms.length; i++)
{
inputText=inputText.split(prohibitedTerms[i]).join("[隠蔽]");
}
for(var j=0; j<userDefinedTerms.length; j++)
{
inputText=inputText.split(userDefinedTerms[j]).join("[隠蔽]");
}
return inputText;
}
function registerUserTerm(newTerm)
{
userDefinedTerms.push(newTerm);
}
function listAllTerms()
{
return prohibitedTerms.concat(userDefinedTerms);
}
module.exports.filterText=filterText;
module.exports.registerUserTerm=registerUserTerm;
module.exports.listAllTerms=listAllTerms;
2)、package.jsonには、パッケージのメタ情報を定義します。名前、バージョン、メインファイル、依存関係などを記述します。
{
"author":"開発者名",
"name":"textfilter",
"version":"1.0.0",
"description":"テキスト中の単語をフィルタリングするモジュール",
"main":"censortext",
"dependencies":{
"chalk":"^4.1.0"
},
"engines":{
"node":">=12.0.0"
}
}
3)、README.mdには、モジュールの使用方法や注意事項を記載します
3.パッケージ化する
コマンドラインでtextfilterフォルダに移動し、npm packコマンドを実行します。これにより、tgz形式のパッケージファイルが生成されます。
二、パッケージの利用
作成したパッケージの利用方法は、NPMレジストリへの公開とローカル環境での利用がありますが、ここではローカル利用の手順を説明します。
-
利用側のプロジェクトフォルダ(例:wordapp)を作成します
-
コマンドラインでwordappフォルダに移動し、ローカルパッケージをインストールします。レジストリに登録されている場合は npm install パッケージ名 、ローカルファイルの場合は npm install ../textfilter/textfilter-1.0.0.tgz のように指定します。
-
インストール完了後、wordapp下にnode_modulesフォルダが作成され、その中にtextfilterが配置されます
-
test.jsファイルを作成し、パッケージの機能を呼び出します
var textfilter=require("textfilter");
console.log("登録済み単語:", textfilter.listAllTerms());
console.log("フィルタ結果:", textfilter.filterText(" Today is angry and cruel "));
textfilter.registerUserTerm("annoying");
console.log("更新後の単語:", textfilter.listAllTerms());
console.log("適用結果:", textfilter.filterText(" This is annoying "));
- 実行
node test.jsコマンドでプログラムを実行し、フィルタリングの結果を確認できます