2017-10-19 3 views
-1

私が見ているコードはかなりシンプルです。これは、ライブラリを必要とし、関数のいずれかを使用します。ノードjsのエントリスクリプト内のすべての関数はありますか?

const bitcoin = require('bcashjs-lib'); 
. 
. 
. 
const hdPath = bitcoin.hdPath(keychain); 

は、ここで他の場所で使用中のそれの例です:

https://github.com/BitGo/BitGoJS/blob/30f7b0850e65a0cec91ad911e76a935e07c363a5/src/v2/coins/bch.js#L40

はここで、彼らが使用しているバージョンです:

https://github.com/BitGo/BitGoJS/blob/30f7b0850e65a0cec91ad911e76a935e07c363a5/package.json#L74

しかし、自分のスクリプトで同じことをすると、関数は定義されません。そして案の定、ライブラリは、エントリ・ファイルでそれを持っていません。

https://github.com/BitGo/bcashjs-lib/blob/master/src/index.js

任意のヒントは素晴らしいことです。

+0

を私はビットコインを知らないが、それは単にあなたが「bcashjs-LIB」 –

答えて

2

BitGoモジュールはhdPath()を使用することができます。モジュール自体を定義してbitcoinオブジェクトに接続するためです。それはbcashjs-libの一部ではありません。

here where they define it参照してください:(ライン129)

bitcoin.hdPath = function(rootKey) { 
    const cache = {}; 
    //etc... 
} 
+0

グレート、ありがとうの同じバージョンを持っていないかもしれません。そのオブジェクトが他のファイルにどのように渡されているか知っていますか? – timothyylim

+0

それは "必要な"仕事の方法です。 モジュールが必要な場合は、require呼び出しが別のファイルで行われていても、毎回正確なオブジェクトを取得します。したがって、モジュールを変更すると、その変更は他のどこでも利用可能になります。あなたが何をしているのか分からない場合は、あなたのプロジェクトに同じモジュールを必要とする他のモジュールで本当の混乱を招く可能性があるので、お勧めしません。 –

+0

彼らは猿のパッチを当てる 'bcashjs-lib'のようです - モジュールによってエクスポートされたオブジェクトに関数を追加しています。その後、それをインポートするすべてのモジュールは、新しい関数にアクセスできます。 –

関連する問題