2017-08-01 5 views
-1

を使用して、私は私自身のnodejsファイルで使用したいと思います次のライブラリ、私を発見した:https://github.com/kyr0/trimp3ライブラリとしてノードCLIツール(trimp3)

はしかし、それはCLIツールである、と私はしたいと思いますそれをライブラリとして使用してください。

私は自分のnodejsコードでこれを使用して、プログラムで(つまりnodejsファイルからcliツールとして実行するのではなく、ノードをまっすぐに実行することなく)使用できます。

私はあなたが何を意味するかを理解していただきたいと思います。

+0

実際のコードを見てください。 'trimp3.js'は' libtrimp3.js'の周りにある非常に薄いラッパーです。あなたは少し変更/猿のパッチを当てて好きなようにインポートして使うことができます。さらに、* ffmpegを中心に薄いラッパーでもあります。 – deceze

+0

私はそれを見ましたが、nodejsファイルから実際にどのように呼び出すのか、引数を渡すのか分かりません。 trimp3.jsでは 'require(path.resolve(__ filename、 '../ libtrimp3.js'))と呼ばれるjusです.cli();'正しく理解すれば?しかし、私は単純なnodejsファイルでこれをどうすればよいのですか? –

+0

実際に何かを行う唯一のものは 'trim'と' calcTimes'ですが、残りはCLIの使い方です。私は単にそれらの数行を自分のプロジェクトにコピーし、必要に応じてそれらを適用します。そのライブラリに頼る必要は全くありません。 – deceze

答えて

0

私はあなたがちょうどあなた自身のモジュールにコードをコピーし、必要に応じて使用することができ、コメントに同意するが、あなたは本当にこの依存関係を追加したい場合は、ローカルで、その後

$ npm install trimp3 --save 

とそれをインストールすることができますそのようなlibtrimp3.jsへの完全なパスでそれを必要とする:

const trimp = require('./node_modules/trimp3/libtrimp3.js') 

あなたはあなたが正しい相対パスを持っていることを確認するためにそれを呼んでいる場所に基づいてそのパスを調整する必要があります。コメントに基づいて

** UPDATE **

、それはライブラリは、CLIを使用して来て情報を期待していることを良い点です。実際にはどちらかというと偽装するのは難しくありませんが、process.argvは単なる配列ですが、他のものに使用している場合は、それを考慮する必要があります。 trimp3を要求する前に(ファイルがロードされたときにprocess.argvの解析が行われてしまうため)、呼び出しコードは配列をtrimp3が予期しているものに設定する必要があります。それは2で配列をスライスしていますので、配列の最初の2つの項目をスキップするために起こっていると、次のように残りの配列が解析されます:だから

mp3In: argv[0], 
mp3Out: argv[1], 
beginTime: argv[2], 
endTime: argv[3] 

あなたが前trimp3を必要とするprocess.argv = ['', '', 'path/to/input', 'path/to/output', 'beginTime', 'endTime']を設定した場合、あなたの」 dは野球場にいる。

これは私の最初の同意書に戻ります。おそらくではないとのコメントがあります。ではなく、このライブラリを使用して独自のモジュールを構築しています。

+0

コードを見れば、引数を読み出すために 'argv'だけを使用してCLIからの呼び出しを想定してかなりハードコーディングされています。それでは簡単ではありません。 – deceze

+0

@decezeがあなたのコメントのために更新されました。それがあなたの懸念を解決するかどうか教えてください。 – Paul

関連する問題