ruscryptojs
Version:
Simplified library for Russian GOST crypto providers.
75 lines (72 loc) • 2.15 kB
JavaScript
;
var webpack = require('webpack');
var { CleanWebpackPlugin } = require('clean-webpack-plugin');
var path = require('path');
var libraryName = 'RusCryptoJS';
var filename = 'ruscrypto.min.js';
module.exports = (env, argv) => {
if (argv.mode === 'production') {
var plugins = [
new CleanWebpackPlugin({
protectWebpackAssets: false,
cleanAfterEveryBuildPatterns: ['*.LICENSE.txt']
})
];
var devServer = undefined;
}
else {
var plugins = [
new webpack.HotModuleReplacementPlugin()
];
var devServer = {
hot: true,
static: "./docs",
devMiddleware: {
publicPath: "/js/"
}
};
}
return {
entry: {
main: [ './src' ]
},
output: {
path: path.resolve(__dirname, 'dist'),
filename: filename,
library: libraryName,
libraryTarget: 'umd',
umdNamedDefine: true,
// https://github.com/webpack/webpack/issues/1625#issuecomment-407553490
globalObject: "typeof self !== 'undefined' ? self : this"
},
resolve: {
extensions: ['.js'],
},
module: {
rules: [{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: "babel-loader",
options: {
presets: [
["@babel/preset-env", {
debug: false,
useBuiltIns: "usage",
targets: {
chrome: "60",
firefox: "52",
ie: "11",
safari: "10"
}
}]
]
}
}
}],
},
plugins: plugins,
devtool: "source-map",
devServer: devServer
}
};