86 lines
3.0 KiB
JavaScript
86 lines
3.0 KiB
JavaScript
|
const path = require('path');
|
||
|
const webpack = require('webpack');
|
||
|
const TerserPlugin = require('terser-webpack-plugin');
|
||
|
|
||
|
module.exports = function(env, argv) {
|
||
|
const isProduction = argv.mode === 'production';
|
||
|
return {
|
||
|
entry: './src/index.ts',
|
||
|
module: {
|
||
|
rules: [
|
||
|
{
|
||
|
test: /\.ts?$/,
|
||
|
use: [
|
||
|
{
|
||
|
loader: require.resolve('ts-loader'),
|
||
|
options: {
|
||
|
compiler: 'ts-patch/compiler',
|
||
|
},
|
||
|
},
|
||
|
],
|
||
|
exclude: ['/node_modules', '/lib'],
|
||
|
},
|
||
|
{
|
||
|
test: /\.m?js/,
|
||
|
resolve: {
|
||
|
fullySpecified: false
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
plugins: [
|
||
|
new webpack.IgnorePlugin({
|
||
|
checkResource(resource) {
|
||
|
// "@ethereumjs/common/genesisStates" consists ~800KB static files which are no more needed
|
||
|
return /(.*\/genesisStates\/.*\.json)/.test(resource)
|
||
|
},
|
||
|
}),
|
||
|
new webpack.ProvidePlugin({
|
||
|
Buffer: ['buffer', 'Buffer'],
|
||
|
process: 'process/browser'
|
||
|
}),
|
||
|
new webpack.SourceMapDevToolPlugin({
|
||
|
test: [/\.ts$/],
|
||
|
exclude: 'vendor',
|
||
|
filename: "app.[hash].js.map",
|
||
|
append: "//# sourceMappingURL=[url]",
|
||
|
moduleFilenameTemplate: '[resource-path]',
|
||
|
fallbackModuleFilenameTemplate: '[resource-path]',
|
||
|
}),
|
||
|
],
|
||
|
resolve: {
|
||
|
extensions: ['.ts', '.js'],
|
||
|
alias: {
|
||
|
"src": path.resolve(__dirname, 'src'),
|
||
|
// To avoid blotting up the `bn.js` library all over the packages
|
||
|
// use single library instance.
|
||
|
"bn.js": path.resolve(__dirname, 'node_modules/bn.js')
|
||
|
},
|
||
|
fallback: {
|
||
|
"path": false,
|
||
|
"os": false,
|
||
|
"url": require.resolve("url"),
|
||
|
"http": require.resolve("http-browserify"),
|
||
|
"https": require.resolve("https-browserify"),
|
||
|
"stream": require.resolve("stream-browserify"),
|
||
|
"crypto": require.resolve("crypto-browserify"),
|
||
|
"querystring": require.resolve('querystring-es3'),
|
||
|
"zlib": require.resolve('browserify-zlib')
|
||
|
}
|
||
|
},
|
||
|
output: {
|
||
|
filename: 'rubic-sdk.min.js',
|
||
|
path: path.resolve(__dirname, 'dist'),
|
||
|
library: "RubicSDK",
|
||
|
clean: true
|
||
|
},
|
||
|
// optimization: {
|
||
|
// minimizer: [new TerserPlugin({
|
||
|
// extractComments: false
|
||
|
// })],
|
||
|
// },
|
||
|
devtool: 'source-map',
|
||
|
mode: 'development',
|
||
|
}
|
||
|
};
|