package.json
"main": "index.js", "scripts": { "test": "node test/index.js", "prepublish": "npm run build && npm run bundle", "build": "babel zero.js index.js -d dist/es5 && babel subproviders -d dist/es5/subproviders && babel util -d dist/es5/util", "bundle": "mkdir -p ./dist && npm run bundle-engine && npm run bundle-zero", "bundle-zero": "browserify -s ZeroClientProvider -e zero.js -t [ babelify --presets [ es2015 ] ] > dist/ZeroClientProvider.js", "bundle-engine": "browserify -s ProviderEngine -e index.js -t [ babelify --presets [ es2015 ] ] > dist/ProviderEngine.js" },
从script可以看出来,运行该项目,首先要prepublish
npm run prepublish
作用就是将根目录下的index.js\zero.js\subproviders和util文件夹中的所有文件都使用babel转成es5的版本,存放在dist文件夹中。然后分别使用browserify将index.js\zero.js转成es5版本的dist/ProviderEngine.js\dist/ZeroClientProvider.js
browserify命令行参数意思:
–transform, -t: 对上层文件进行转换 –entry, -e: 应用程序的入口 –standalone -s: 生成一个UMB的绑定的接口,提供给其他模块使用。
返回:
> web3-provider-engine@14.1.0 prepublish /Users/wanghui/provider-engine-master > npm run build && npm run bundle > web3-provider-engine@14.1.0 build /Users/wanghui/provider-engine-master > babel zero.js index.js -d dist/es5 && babel subproviders -d dist/es5/subproviders && babel util -d dist/es5/util zero.js -> dist/es5/zero.js index.js -> dist/es5/index.js subproviders/cache.js -> dist/es5/subproviders/cache.js subproviders/default-fixture.js -> dist/es5/subproviders/default-fixture.js subproviders/etherscan.js -> dist/es5/subproviders/etherscan.js subproviders/fetch.js -> dist/es5/subproviders/fetch.js subproviders/filters.js -> dist/es5/subproviders/filters.js subproviders/fixture.js -> dist/es5/subproviders/fixture.js subproviders/gasprice.js -> dist/es5/subproviders/gasprice.js subproviders/hooked-wallet-ethtx.js -> dist/es5/subproviders/hooked-wallet-ethtx.js subproviders/hooked-wallet.js -> dist/es5/subproviders/hooked-wallet.js subproviders/inflight-cache.js -> dist/es5/subproviders/inflight-cache.js subproviders/infura.js -> dist/es5/subproviders/infura.js subproviders/ipc.js -> dist/es5/subproviders/ipc.js subproviders/nonce-tracker.js -> dist/es5/subproviders/nonce-tracker.js subproviders/provider.js -> dist/es5/subproviders/provider.js subproviders/rpc.js -> dist/es5/subproviders/rpc.js subproviders/sanitizer.js -> dist/es5/subproviders/sanitizer.js subproviders/stream.js -> dist/es5/subproviders/stream.js subproviders/subprovider.js -> dist/es5/subproviders/subprovider.js subproviders/subscriptions.js -> dist/es5/subproviders/subscriptions.js subproviders/vm.js -> dist/es5/subproviders/vm.js subproviders/wallet.js -> dist/es5/subproviders/wallet.js subproviders/websocket.js -> dist/es5/subproviders/websocket.js subproviders/whitelist.js -> dist/es5/subproviders/whitelist.js util/assert.js -> dist/es5/util/assert.js util/async.js -> dist/es5/util/async.js util/create-payload.js -> dist/es5/util/create-payload.js util/estimate-gas.js -> dist/es5/util/estimate-gas.js util/random-id.js -> dist/es5/util/random-id.js util/rpc-cache-utils.js -> dist/es5/util/rpc-cache-utils.js util/rpc-hex-encoding.js -> dist/es5/util/rpc-hex-encoding.js util/stoplight.js -> dist/es5/util/stoplight.js > web3-provider-engine@14.1.0 bundle /Users/wanghui/provider-engine-master > mkdir -p ./dist && npm run bundle-engine && npm run bundle-zero > web3-provider-engine@14.1.0 bundle-engine /Users/wanghui/provider-engine-master > browserify -s ProviderEngine -e index.js -t [ babelify --presets [ es2015 ] ] > dist/ProviderEngine.js > web3-provider-engine@14.1.0 bundle-zero /Users/wanghui/provider-engine-master > browserify -s ZeroClientProvider -e zero.js -t [ babelify --presets [ es2015 ] ] > dist/ZeroClientProvider.js