You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
886 B
41 lines
886 B
const path = require('path')
|
|
const fs = require('fs')
|
|
const nodeExternals = require('webpack-node-externals') // eslint-disable-line import/no-extraneous-dependencies
|
|
|
|
const define = require('./define')
|
|
|
|
const dirs = p =>
|
|
fs
|
|
.readdirSync(p)
|
|
.filter(f => fs.statSync(path.join(p, f)).isDirectory())
|
|
.map(d => path.resolve(__dirname, `${p}/${d}`))
|
|
.reduce((result, value) => {
|
|
const [key] = value.split('/').slice(-1)
|
|
result[key] = value
|
|
return result
|
|
}, {})
|
|
|
|
module.exports = {
|
|
target: 'node',
|
|
|
|
entry: dirs(path.resolve(__dirname, '../src/internals')),
|
|
|
|
externals: [nodeExternals()],
|
|
|
|
output: {
|
|
path: path.resolve(__dirname, '../static'),
|
|
filename: '[name].js',
|
|
},
|
|
|
|
module: {
|
|
rules: [
|
|
{
|
|
test: /\.js$/,
|
|
use: 'babel-loader',
|
|
exclude: /node_modules/,
|
|
},
|
|
],
|
|
},
|
|
|
|
plugins: [define],
|
|
}
|
|
|