diff --git a/CHANGELOG.md b/CHANGELOG.md index f85eda1..adc89ed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org). ## [Unreleased] + +### Added +- Bundling with Webpack. + ### Changed - New logo! diff --git a/package.json b/package.json index 2c150b3..39ce668 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,8 @@ "name": "voxelizer", "version": "0.1.3", "description": "Voxelization for 3D models", - "main": "lib/index.js", + "main": "lib/voxelizer.js", + "module": "src/index.js", "scripts": { "build": "babel src -d lib", "test": "jest", diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 0000000..a885d5e --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,47 @@ +const webpack = require("webpack"); +const path = require("path"); +const mode = 'production'; + +const pkg = require('./package.json'); +const date = (new Date()).toDateString(); + +const banner = `${pkg.name} v${pkg.version} ${date} +${pkg.homepage} + +@author ${pkg.author.name} <${pkg.author.email}> +@copyright ${date.slice(-4)} ${pkg.author.name} +@license ${pkg.license} +@version ${pkg.version} +@build [hash]`; + +let umdConfig = { + mode: mode, + devtool: 'source-map', + entry: "./src/index.js", + output: { + path: path.resolve(__dirname, "lib"), + filename: "voxelizer.js", + library: "Voxelizer", + libraryTarget: 'umd', + globalObject: 'this' + }, + module: { + rules: [ + { + test: /\.js$/, + exclude: /(node_modules)/, + use: { + loader: "babel-loader" + } + } + ] + }, + plugins: [ + new webpack.BannerPlugin({banner: banner}), + ], + externals: { + three: 'THREE', + } +}; + +module.exports = umdConfig;