2020-05-30 11:31:38 +02:00
|
|
|
|
2020-06-13 19:26:57 +02:00
|
|
|
const fs = require('fs');
|
2020-05-30 11:31:38 +02:00
|
|
|
const webpack = require("webpack");
|
|
|
|
const path = require("path");
|
|
|
|
|
2020-06-13 19:26:57 +02:00
|
|
|
function zip(entries) {
|
|
|
|
const obj = {};
|
|
|
|
for (const [k, v] of entries) {
|
|
|
|
obj[k] = v;
|
|
|
|
}
|
|
|
|
return obj;
|
|
|
|
}
|
|
|
|
|
2020-05-30 11:31:38 +02:00
|
|
|
module.exports = {
|
|
|
|
target: 'node',
|
|
|
|
mode: 'development',
|
2020-06-07 00:21:15 +02:00
|
|
|
entry: {
|
|
|
|
'bolt': './src/bin/bolt.ts',
|
|
|
|
'bolt-test': './src/bin/bolt-test.ts',
|
|
|
|
},
|
2020-05-30 11:31:38 +02:00
|
|
|
output: {
|
2020-06-07 00:21:15 +02:00
|
|
|
filename: 'bin/[name].js',
|
2020-05-30 11:31:38 +02:00
|
|
|
path: path.resolve(__dirname, 'build'),
|
|
|
|
},
|
|
|
|
resolve: {
|
|
|
|
extensions: [".ts", ".js"],
|
|
|
|
},
|
2020-06-13 19:26:57 +02:00
|
|
|
externals: zip(fs.readdirSync('node_modules').map(m => [m, `commonjs ${m}`])),
|
2020-05-30 11:31:38 +02:00
|
|
|
plugins: [
|
|
|
|
new webpack.BannerPlugin({ banner: '#!/usr/bin/env node', raw: true }),
|
|
|
|
],
|
|
|
|
devtool: 'source-map',
|
|
|
|
module: {
|
|
|
|
rules: [
|
|
|
|
{ test: /\.ts$/, loader: "ts-loader", options: { transpileOnly: true } },
|
|
|
|
{ test: /\.m?js$/, exclude: /node_modules/, loader: 'babel-loader' },
|
|
|
|
]
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|