privatebin/webpack.config.js
2018-04-07 19:07:19 +00:00

57 lines
1.7 KiB
JavaScript

const { isArray, mergeWith } = require('lodash')
const webpack = require('webpack')
function mergeWithFn(obj, src) {
if (isArray(obj)) {
return obj.concat(src)
}
}
function createVarient(filename, config = {}) {
return mergeWith(config, {
mode: 'production',
output: {
filename,
publicPath: '/dist/'
},
module: {
rules: [
{ test: /bootstrap.+\.(jsx|js)$/, loader: 'imports-loader?jQuery=jquery,$=jquery,this=>window' }
]
},
plugins: [
new webpack.ProvidePlugin({
Helper: './Helper',
I18n: './I18n',
CryptTool: './CryptTool',
Model: './Model',
UiHelper: './UiHelper',
Alert: './Alert',
PasteStatus: './PasteStatus',
Prompt: './Prompt',
Editor: './Editor',
PasteViewer: './PasteViewer',
AttachmentViewer: './AttachmentViewer',
DiscussionViewer: './DiscussionViewer',
TopNav: './TopNav',
Uploader: './Uploader',
PasteEncrypter: './PasteEncrypter',
PasteDecrypter: './PasteDecrypter',
Controller: './Controller'
})
]
}, mergeWithFn)
}
module.exports = [
createVarient('privatebin.js'),
createVarient('zerobin.js', {
plugins: [
new webpack.NormalModuleReplacementPlugin(/js-base64/, function (resource) {
resource.request = resource.request.replace('js-base64', 'js-base64/old/base64-1.7')
})
]
})
]