如何浏览模块ethereumjs-tx?

我有这个演示代码我想broserify:

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')) 

我几乎成功地安装了ethereum-tx:

 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中运行正常。 但是当尝试对它进行批量化时会出现问题,创build一个文件main.js,这是上面的代码:

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

我的nodejs有一个ethereumjs-tx的文件夹,这对我来说似乎没问题:

 # 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 

任何关于如何获得这个代码的提示broserified? 我究竟做错了什么? 谢谢!

您需要在本地安装任何模块以便对其进行浏览。 至less,我没有find任何select让浏览器使用全球安装的软件包。

所以,在你的项目的根源,你需要做的:

 npm install ethereumjs-tx --save-dev 

--save表示软件包不仅会被下载到本地node_modules文件夹中,还会修改你的package.json并记下依赖关系,所以在package.json之后的任何进一步的npm install命令都会安装ethereumjs-tx版。

-dev表示这个包将被保存为一个开发依赖项,这意味着你的应用程序在生产中不会将这个包用作一个节点应用程序 :所以你打包在客户端的每个包都应该是devDependency。

当你运行npm install ,npm需要一个有效的package.json存在。 警告npm抱怨是由于这个package.json不存在于你的项目,因此没有一些package.json字段,如description 。 一个简单的方法来初始化一个package.json ,如果没有的话就是运行npm init

实际上,它似乎是在'/ root /'上创build的,这似乎是一个web项目的一个平台。

Interesting Posts