fimfic2epub/webpack.config.babel.js
2018-03-12 22:05:01 +01:00

124 lines
2.3 KiB
JavaScript

import path from 'path'
import nodeExternals from 'webpack-node-externals'
let inProduction = process.env.NODE_ENV === 'production' || process.argv.indexOf('-p') !== -1
const bundleExtensionConfig = {
entry: {
eventPage: ['./src/eventPage'],
fimfic2epub: ['./src/main']
},
output: {
path: path.join(__dirname, '/'),
filename: './extension/build/[name].js'
},
module: {
rules: [
{
test: /\.js$/,
loader: 'babel-loader',
exclude: /node_modules/,
query: {
sourceMaps: true,
presets: ['es2015']
}
},
{
test: /\.styl$/,
use: ['raw-loader', 'stylus-loader']
}
]
},
resolve: {
extensions: ['.js', '.json', '.styl'],
modules: [
path.resolve('./src'),
'node_modules'
]
},
node: {
fs: 'empty'
},
externals: ['request'],
plugins: [
// new (require('webpack-bundle-analyzer').BundleAnalyzerPlugin)()
],
performance: {
hints: false
},
optimization: {
concatenateModules: inProduction,
minimize: inProduction
},
devtool: inProduction ? 'nosources-source-map' : 'source-map',
mode: inProduction ? 'production' : 'development'
}
const bundleNpmModuleConfig = {
entry: './src/FimFic2Epub',
output: {
path: path.join(__dirname, '/'),
filename: './dist/fimfic2epub.js',
libraryTarget: 'commonjs2'
},
target: 'node',
module: {
rules: [
{
test: /\.js$/,
loader: 'babel-loader',
exclude: /node_modules/,
query: {
sourceMaps: !inProduction,
presets: [['env', {
targets: {
node: '8.0.0'
}
}]]
}
},
{
test: /\.styl$/,
use: ['raw-loader', 'stylus-loader']
}
]
},
resolve: {
extensions: ['.js', '.json', '.styl'],
modules: [
path.resolve('./src'),
'node_modules'
]
},
node: {
__dirname: false
},
externals: [nodeExternals({whitelist: ['es6-event-emitter', /^babel-runtime/]})],
plugins: [],
performance: {
hints: false
},
optimization: {
concatenateModules: inProduction,
minimize: inProduction
},
devtool: 'nosources-source-map',
mode: inProduction ? 'production' : 'development'
}
export default [bundleExtensionConfig, bundleNpmModuleConfig]