@textback/notification-widget
Version:
TODO: Give a short introduction of your project. Let this section explain the objectives or the motivation behind this project.
73 lines (65 loc) • 1.57 kB
JavaScript
const webpack = require('webpack');
const CleanWebpackPlugin = require('clean-webpack-plugin');
const fs = require('fs');
function getPackageVersion() {
const json = require('./package.json');
const buildNumber = process.env.BUILD_BUILDNUMBER;
let version = json.version;
if (typeof buildNumber !== 'undefined') {
version = `${json.version}-${buildNumber}`
json.version = version;
fs.writeFileSync('package.json', JSON.stringify(json, null, 2));
}
return version;
}
const webpackConfig = {
entry: {
sdk: './src/sdk/sdk.entry.js',
index: './src/widget/widget.entry.js',
},
output: {
path: __dirname + '/build',
filename: '[name].js',
},
module: {
rules: [{
test: /\.scss$/,
use: [
{loader: 'style-loader'},
{loader: 'css-loader'},
{loader: 'sass-loader'}
]
}, {
test: /\.svg/,
use: [{
loader: 'svg-inline-loader',
options: {
// classPrefix: 'tb-notification-widget',
// idPrefix: 'tb-notification-widget',
},
}]
}, {
test: /\.png/,
use: 'base64-image-loader'
}, {
test: /\.html/,
use: 'html-loader',
}, {
test: /\.js$/,
exclude: [/node_modules/],
use: [{
loader: 'babel-loader',
options: {
presets: ['env'],
},
}],
}],
},
plugins: [
new CleanWebpackPlugin(['build']),
new webpack.DefinePlugin({
VERSION: JSON.stringify(getPackageVersion())
}),
],
};
module.exports = webpackConfig;