make package.json browser field compatible with webpack

This commit is contained in:
Boyma Fahnbulleh 2017-03-26 15:04:31 -07:00 committed by Christopher Jeffrey
parent 9113f03107
commit 48d60eeaab
No known key found for this signature in database
GPG Key ID: 8962AB9DE6666BBD
2 changed files with 54 additions and 9 deletions

View File

@ -37,6 +37,7 @@
},
"devDependencies": {
"babelify": "^7.3.0",
"babel-loader": "^6.4.1",
"babel-preset-es2015": "^6.24.1",
"babel-polyfill": "^6.23.0",
"babel-plugin-transform-runtime": "^6.23.0",
@ -47,7 +48,8 @@
"hash.js": "^1.0.3",
"jsdoc": "^3.4.3",
"mocha": "^3.4.1",
"uglify-js": "^3.0.5"
"uglify-js": "^3.0.5",
"webpack": "^1.13.3"
},
"main": "./lib/bcoin.js",
"bin": {
@ -64,13 +66,14 @@
"uglify": "uglifyjs -m -o browser/bcoin.min.js browser/bcoin.js && uglifyjs -m -o browser/bcoin-master.min.js browser/bcoin-master.js",
"clean": "rm browser/bcoin.js browser/bcoin.min.js browser/bcoin-master.js browser/bcoin-master.min.js",
"lint": "eslint lib/ test/ migrate/ examples/ bench/ bin/cli bin/node bin/spvnode || exit 0",
"docs": "jsdoc -c jsdoc.json"
"docs": "jsdoc -c jsdoc.json",
"webpack": "./node_modules/webpack/bin/webpack.js"
},
"browser": {
"./lib/blockchain/layout": "./lib/blockchain/layout-browser.js",
"./lib/crypto/backend": "./lib/crypto/backend-browser.js",
"./lib/crypto/ec": "./lib/crypto/ec-elliptic.js",
"./lib/crypto/pk": "./lib/crypto/pk-browser.js",
"./lib/blockchain/layout.js": "./lib/blockchain/layout-browser.js",
"./lib/crypto/backend.js": "./lib/crypto/backend-browser.js",
"./lib/crypto/ec.js": "./lib/crypto/ec-elliptic.js",
"./lib/crypto/pk.js": "./lib/crypto/pk-browser.js",
"./lib/db/backends.js": "./lib/db/backends-browser.js",
"./lib/env.js": "./lib/env-browser.js",
"./lib/hd/wordlist": "./lib/hd/wordlist-browser.js",
@ -96,15 +99,18 @@
"bcoin-native": "./browser/empty.js",
"child_process": "./browser/empty.js",
"crypto": "./browser/empty.js",
"ec":"./lib/crypto/ec-elliptic.js",
"dgram": "./browser/empty.js",
"dns": "./browser/empty.js",
"ec": "./lib/crypto/ec-elliptic.js",
"fs": "./browser/empty.js",
"net": "./browser/empty.js",
"os": "./browser/empty.js",
"secp256k1": "./browser/empty.js"
"secp256k1": "./browser/empty.js",
"socket.io": "./browser/empty.js"
},
"browserify": {
"transform": ["babelify"]
"transform": [
"babelify"
]
}
}

39
webpack.config.js Normal file
View File

@ -0,0 +1,39 @@
const webpack = require('webpack')
const PATHS = {
bcoin: './lib/bcoin',
master: './lib/workers/master'
}
module.exports = {
entry: {
'bcoin': PATHS.bcoin,
'bcoin.min': PATHS.bcoin,
'bcoin-master': PATHS.master,
'bcoin-master.min': PATHS.master
},
output: {
path: './browser',
filename: '[name].js'
},
resolve: {
extensions: ['', '.js', '.json'],
packageAlias: 'browser'
},
module: {
loaders: [
{ test: /\.js$/, loader: 'babel', exclude: /node_modules/ },
{ test: /\.json$/, loader: 'json' }
]
},
node: {
fs: 'empty'
},
plugins: [
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
},
include: /\.min\.js$/,
minimize: true
})
]
}