Free texture packer also released as webpack plugin. Supported multisources, hot reload, file system realtime watching.
Installation:
$ npm install webpack-free-tex-packer
Basic usage (webpack.config.js):
const path = require('path'); const WebpackFreeTexPacker = require('webpack-free-tex-packer'); module.exports = { entry: [ './src/index', 'webpack-dev-server/client?http://localhost:8080' ], output: {filename: 'index.js'}, mode: 'development', plugins: [ new WebpackFreeTexPacker(path.resolve(__dirname, 'atlases')) ] };
Output:
http://localhost:8080/pack-result.png
http://localhost:8080/pack-result.json
Advanced usage (webpack.config.js):
const path = require('path'); const WebpackFreeTexPacker = require('webpack-free-tex-packer'); let sources = []; sources.push(path.resolve(__dirname, 'atlases/10.png')); sources.push(path.resolve(__dirname, 'atlases/11.png')); sources.push(path.resolve(__dirname, 'atlases/12.png')); sources.push(path.resolve(__dirname, 'atlases/dir1')); sources.push(path.resolve(__dirname, 'atlases/dir2/.')); let packOptions = { textureName: 'atlas', width: 512, height: 512, fixedSize: false, padding: 2, allowRotation: true, detectIdentical: true, allowTrim: true, exporter: "Pixi", removeFileExtension: false, prependFolderName: true }; module.exports = { entry: [ './src/index', 'webpack-dev-server/client?http://localhost:8080' ], output: {filename: 'index.js'}, mode: 'development', plugins: [ new WebpackFreeTexPacker(sources, 'assets', packOptions) ] };
Output:
http://localhost:8080/assets/atlas.png
http://localhost:8080/assets/atlas.json
Plugin arguments:
argument | type | description |
---|---|---|
sources | String or Array | Images or folders path. Folder path, ended by ('.', '*' or '*.*') includes images to atlas root. |
output | String | Output folder |
packOptions | Object | Pack options |
Demo
- Install node.js
- Dowload demo
- Unpack
- Execute in console:
npm install
npm start
- Open http://localhost:8080