@goodboydigital/fido-build
v14.2.2
Published
Goodboys build tool. Webpack and bulldog combo
Downloads
250
Readme
Fido Build
Goodboys build tool. Webpack and Bulldog combo.
Provides Three core functions
- Code compilation
- Asset compilation
- Serve functions
Install
npm i @goodboydigital/fido-build -D
Docs
Docs can be found here
Usage
In order to run fido-build you will need to create a simple build script to call the complier. This is typically placed in the tools
folder in a build.js
file.
To run the build script you can create some npm scripts in your package.json
in order to make the process easier.
Build Script
const { FidoCompiler } = require('@goodboydigital/fido-build');
const args = {};
process.argv.forEach((val) =>
{
args[val] = true;
});
const config = {};
config.mode = args.production ? 'production' : 'development';
config.clean = !!args.clean;
const compiler = new FidoCompiler(config);
config.mode === 'development' ? compiler.watch() : compiler.run();
NPM Scripts
"script": {
"start": "node ./tools/build.js",
"prod": "node ./tools/build.js production",
"start:clean": "npm run start -- clean",
"prod:clean": "npm run prod -- clean"
}
Configuration
If you wish to configure certain aspects you can create a fido.config.js
in your projects and pass this into the FidoCompiler
instead.
const config = {
mode:'development',
entry:'./src',
output:'./dist',
codeConfig:{
analyse: false,
modern: true,
},
assetsConfig:{
imageResolutions:{
prefixTemplate: '@%%x',
resolutions: { high: 2, default: 1, low: 0.5 },
fixedResolution: 'default',
maximumTextureSize: 4096,
},
audio:{
mp3:{
bitrate: 96,
channels: 1,
frequency: 48000,
recompress: false,
},
ogg:{
channels: 1,
recompress: false,
}
},
gb:{
dedupe: true,
batch: false,
debug: false,
},
fileNames:false //example of disabling a default plugin
},
serveConfig:{
port:2311,
localhost:false,
useWebpackServer:true,
}
}
module.exports = config;
Links
Fido-build provides a simpler way to link local projects together instead of using npm link
. All you need to do is create a .links
in the root of your project.
Typically you will not need to commit this file as the paths will be relative to your computer.
Example
[
{
"location": "../odie/lib",
"target": "./node_modules/@goodboydigital/odie/lib"
}
]