From 4dcc561a733267a098a647769fe4a75658fc7bed Mon Sep 17 00:00:00 2001 From: Sam Vervaeck Date: Sat, 13 Jun 2020 19:27:39 +0200 Subject: [PATCH] webpack: Add a configuration for production bundle --- package.json | 2 +- webpack.prod.js | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 webpack.prod.js diff --git a/package.json b/package.json index 52045027f..71750f31b 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ }, "scripts": { "watch": "webpack --watch --config webpack.dev.js", - "prepare": "webpack --config webpack.dev.js", + "prepare": "webpack --config webpack.prod.js", "test": "node lib/bin/bolt-test.js compare", "generate-ast": "tsastgen src/ast-spec.ts:src/ast.ts", "update-lkg": "node lib/bin/bolt-test.js create-snapshot lkg" diff --git a/webpack.prod.js b/webpack.prod.js new file mode 100644 index 000000000..fba935da7 --- /dev/null +++ b/webpack.prod.js @@ -0,0 +1,30 @@ + +const webpack = require("webpack"); +const path = require("path"); + +module.exports = { + target: 'node', + mode: 'development', + entry: { + 'bolt': './src/bin/bolt.ts', + 'bolt-test': './src/bin/bolt-test.ts', + }, + output: { + filename: 'bin/[name].js', + path: path.resolve(__dirname, 'build'), + }, + resolve: { + extensions: [".ts", ".js"], + }, + 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' }, + ] + } +}; +