diff options
author | August Skare <post@augustskare.no> | 2018-11-21 15:19:29 +0800 |
---|---|---|
committer | August Skare <post@augustskare.no> | 2018-11-21 15:19:29 +0800 |
commit | 592e1a3e6ff974d357aff02f1c170d6624895b7e (patch) | |
tree | 8b8c519206b8921356b4491ca3fa6bf9d82d222d /packages/instant/webpack.config.js | |
parent | 99176c2d5482b6eb2d2e223ac6cbdae5fc3e42ce (diff) | |
parent | 15f05733be45e05974972c80c4fa8437a62633e2 (diff) | |
download | dexon-sol-tools-592e1a3e6ff974d357aff02f1c170d6624895b7e.tar dexon-sol-tools-592e1a3e6ff974d357aff02f1c170d6624895b7e.tar.gz dexon-sol-tools-592e1a3e6ff974d357aff02f1c170d6624895b7e.tar.bz2 dexon-sol-tools-592e1a3e6ff974d357aff02f1c170d6624895b7e.tar.lz dexon-sol-tools-592e1a3e6ff974d357aff02f1c170d6624895b7e.tar.xz dexon-sol-tools-592e1a3e6ff974d357aff02f1c170d6624895b7e.tar.zst dexon-sol-tools-592e1a3e6ff974d357aff02f1c170d6624895b7e.zip |
Merge branch 'development' into dev-tools-pages
Diffstat (limited to 'packages/instant/webpack.config.js')
-rw-r--r-- | packages/instant/webpack.config.js | 108 |
1 files changed, 75 insertions, 33 deletions
diff --git a/packages/instant/webpack.config.js b/packages/instant/webpack.config.js index 3129e13a6..41276809c 100644 --- a/packages/instant/webpack.config.js +++ b/packages/instant/webpack.config.js @@ -1,39 +1,81 @@ -const path = require('path'); +const childProcess = require('child_process'); const ip = require('ip'); +const path = require('path'); +const webpack = require('webpack'); + // The common js bundle (not this one) is built using tsc. // The umd bundle (this one) has a different entrypoint. -const config = { - entry: './src/index.umd.ts', - output: { - filename: '[name].bundle.js', - path: path.resolve(__dirname, 'public'), - library: 'zeroExInstant', - libraryTarget: 'umd', - }, - devtool: 'source-map', - resolve: { - extensions: ['.js', '.json', '.ts', '.tsx'], - }, - module: { - rules: [ - { - test: /\.(ts|tsx)$/, - loader: 'awesome-typescript-loader', - }, + +const GIT_SHA = childProcess + .execSync('git rev-parse HEAD') + .toString() + .trim(); + +const HEAP_PRODUCTION_ENV_VAR_NAME = 'INSTANT_HEAP_ANALYTICS_ID_PRODUCTION'; +const HEAP_DEVELOPMENT_ENV_VAR_NAME = 'INSTANT_HEAP_ANALYTICS_ID_DEVELOPMENT'; +const getHeapAnalyticsId = modeName => { + if (modeName === 'production') { + return process.env[HEAP_PRODUCTION_ENV_VAR_NAME]; + } + + if (modeName === 'development') { + return process.env[HEAP_DEVELOPMENT_ENV_VAR_NAME]; + } + + return undefined; +}; + +module.exports = (env, argv) => { + const outputPath = process.env.WEBPACK_OUTPUT_PATH || 'umd'; + const config = { + entry: { + instant: './src/index.umd.ts', + }, + output: { + filename: '[name].js', + path: path.resolve(__dirname, outputPath), + library: 'zeroExInstant', + libraryTarget: 'umd', + }, + plugins: [ + new webpack.DefinePlugin({ + 'process.env': { + GIT_SHA: JSON.stringify(GIT_SHA), + HEAP_ANALYTICS_ID: getHeapAnalyticsId(argv.mode), + NPM_PACKAGE_VERSION: JSON.stringify(process.env.npm_package_version), + }, + }), ], - }, - devServer: { - contentBase: path.join(__dirname, 'public'), - port: 5000, - host: '0.0.0.0', - after: () => { - if (config.devServer.host === '0.0.0.0') { - console.log( - `webpack-dev-server can be accessed externally at: http://${ip.address()}:${config.devServer.port}`, - ); - } + devtool: 'source-map', + resolve: { + extensions: ['.js', '.json', '.ts', '.tsx'], }, - }, + module: { + rules: [ + { + test: /\.(ts|tsx)$/, + loader: 'awesome-typescript-loader', + }, + { + test: /\.svg$/, + loader: 'svg-react-loader', + }, + ], + }, + devServer: { + contentBase: path.join(__dirname, 'public'), + port: 5000, + host: '0.0.0.0', + after: () => { + if (config.devServer.host === '0.0.0.0') { + console.log( + `webpack-dev-server can be accessed externally at: http://${ip.address()}:${ + config.devServer.port + }`, + ); + } + }, + }, + }; + return config; }; - -module.exports = config; |