2017-01-11 2 views
1

私はbroserifyしたい、このデモコード持っている:私はこのように、ほぼ正常イーサリアム-TXをインストールしているethereumjs-txモジュールをブラウズするには?

var Tx = require('ethereumjs-tx') 
var privateKey = new Buffer('e331b6d69882b4cb4ea581d88e0b604039a3de5967688d3dcffdd2270c0fd109', 'hex') 

var rawTx = { 
    nonce: '0x00', 
    gasPrice: '0x09184e72a000', 
    gasLimit: '0x2710', 
    to: '0x0000000000000000000000000000000000000000', 
    value: '0x00', 
    data: '0x7f7465737432000000000000000000000000000000000000000000000000000000600057' 
} 

var tx = new Tx(rawTx) 
tx.sign(privateKey) 

var serializedTx = tx.serialize() 
console.log(serializedTx.toString('hex')) 

を:

npm install -g ethereumjs-tx 
    ... 
    npm WARN enoent ENOENT: no such file or directory, open '/root/package.json' 
    npm WARN root No description 
    npm WARN root No repository field. 
    npm WARN root No README data 
    npm WARN root No license field. 

私はこれらの警告メッセージが重要であるか、ちょうど私かどうかわかりませんそれらを無視する必要があります...

しかし、上記のコードはnodejsで正常に実行されます。しかし、問題は、それをbroserifyしようとすると、表示された上記とコードでファイルmain.js作成:

# ls -la /usr/local/lib/node_modules/ethereumjs-tx/ 
total 84 
drwxr-xr-x 6 nobody root 4096 Jan 11 08:46 . 
drwxr-xr-x 6 root root 4096 Jan 11 08:46 .. 
drwxr-xr-x 2 nobody root 4096 Dec 14 00:14 docs 
drwxr-xr-x 2 nobody root 4096 Dec 14 00:14 examples 
-rw-r--r-- 1 nobody root 2028 Dec 14 00:14 fake.js 
-rw-r--r-- 1 nobody root 7395 Dec 15 03:40 index.js 
-rw-r--r-- 1 nobody root 600 Dec 14 00:14 karma.conf.js 
-rw-r--r-- 1 nobody root 16726 Dec 14 00:14 LICENSE 
drwxr-xr-x 76 root root 4096 Jan 11 08:46 node_modules 
-rw-r--r-- 1 nobody root 1187 Dec 14 00:14 .npmignore 
-rw-r--r-- 1 nobody root 3955 Dec 14 00:18 .package.json 
-rw-r--r-- 1 nobody root 4369 Jan 11 08:46 package.json 
-rw-r--r-- 1 nobody root 1871 Dec 15 03:40 README.md 
drwxr-xr-x 2 nobody root 4096 Jan 11 08:46 test 
-rw-r--r-- 1 nobody root 599 Dec 14 00:14 .travis.yml 
:マイnodejs

browserify main.js -o bundle.js 
    Error: Cannot find module 'ethereumjs-tx' from 'myHomeDir' 

することは私にはOKらしいethereumjs-TX用のフォルダを、持っています

このコードを偽造する方法についてのヒントはありますか?私は間違って何をしていますか?どうも!

+2

モジュールを 'npm i --save-dev moduleName'であなたのdevDependenciesに保存すると、' var tx = require( "moduleName") ' – DomeTune

+1

を使うことができます。あなたのpackage.jsonファイルに欠落しています。その問題はない。 – DomeTune

答えて

4

モジュールをブラウズするには、モジュールをローカルにインストールする必要があります。少なくとも、グローバルにインストールされたパッケージで動作するようにbrowserifyを設定するオプションは見つかりませんでした。

だから、あなたのプロジェクトのルートに、あなたは何をする必要があります。

npm install ethereumjs-tx --save-dev 

--saveはあなたpackage.jsonを変更し、書き留めますまた、パッケージは、ローカルnode_modulesフォルダにダウンロードされませんを示しているが、そのため、さらにnpm installコマンド以上のコマンドをpackage.jsonにインストールすると、同じバージョンのethereumjs-txがインストールされます。あなたは、クライアント側で使用するバンドルのすべてのパッケージには、次のようになります。

-devは、ノード・アプリケーションとして生産でアプリケーションによって使用されるパッケージではありませんを意味し、パッケージには、開発の依存関係として保存されることを示していますdevDependencyです。

npm installを実行すると、npmは有効なpackage.jsonが存在することを想定しています。 npmの警告は、このpackage.jsonがプロジェクトに存在しないために、descriptionのようなフィールドがありません。原因はpackage.jsonです。 package.jsonを持っていないときに簡単に初期化するには、npm initを実行します。

実際、あなたは '/ root /'にバンドルを作成しているようですが、これはウェブプロジェクトのための場所です。

+1

答えはすでにコメントにありましたが、本当にいい説明です:-) – DomeTune

関連する問題