tic-bundle v3.5.2

tic-bundle
Simple CLI tool for bundling TIC-80 cartridge code. Supports any language!
Content
Installation
// Yarn
yarn add tic-bundle --dev
// Npm
npm i tic-bundle --save-devExample
Config
{
"files": ["ui.js", "main.js"],
"assets": ["assets.js"]
}Input
src/main.js
function TIC() {
};
// <TILES>
// 000:0100000010100000010000000000000000000000000000000000000000000000
// </TILES>src/ui.js
function ui() {
return 'ui';
};src/assets.js
// script: js
// <TILES>
// 000:0100000010100000010000000000000000000000000000000000000000000000
// </TILES>Output
build.js
// script: js
function ui() {
return 'ui';
};
function TIC() {
};
// <TILES>
// 000:0100000010100000010000000000000000000000000000000000000000000000
// </TILES>CLI
package.json
{
"scripts": {
"watch": "tic-bundle"
}
}CLI options
-r / --root- Root folder-w / --wait- Wait interval-c / --config- Path to config file-o / --output- Bundled file output path-n / --name- Bundle file name-f / --file- Bundle file extension-s / --script- Language-b / --build- Build
Configuration
tic-bundle supports config files. By default, tic-bundle looks for a .ticbundle.js file in the current directory, but an alternative location can be specified using -c <file> or --config <file>.
The specificity is as folows:
.ticbundle.js.ticbundle.json- CLI
- Default config
Default config
{
root: 'src',
wait: 200,
metadata: {
title: null,
author: null,
desc: null,
script: 'js',
input: null,
saveid: null
},
output: {
path: './',
extension: 'js',
name: 'build'
},
files: [],
assets: [],
after: null
}Options
root(defaultsrc) - Folder to watch.wait(default200) - Chokidar awaitWriteFinish.stabilityThresholdmetadata- Cartridge metadatametadata.title- The name of the cart.metadata.author- The name of the developer.metadata.description- Optional description of the game.metadata.script(defaultjs) - Used scripting language.metadata.input- Selects gamepad, mouse or keyboard input source.metadata.saveid- Allows save data to be shared within multiple games on a copy of TIC.output.path(default./) - Bundled file output path.output.extension(defaultjs) - Bundle file output extensionoutput.name(defaultbuild) - Bundled file name.files- Files to bundle. Asset data will be stripped (graphics data, sprite data, etc.) Files will be ordered by index (top first, bottom last).assets- Assets to bundle. Code data will be stripped. Assets will be ordered by index (top first, bottom last) and are always places belowfiles.after- Run after generating the bundle, this can be used to further modify the bundle.
Babel
after can be used to transform the bundled code. A common use-case for js is transforming ES6 syntax to ES5.
Example
.ticbundle.js
module.exports = {
after: bundle => {
const { code } = require('@babel/standalone').transform(bundle, {
plugins: [require('@babel/plugin-transform-arrow-functions')]
});
return code;
}
};Donating
1 year ago
1 year ago
1 year ago
1 year ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago