Xolabot Scripts
Xolabot Scripts is a zero-config toolkit for building JavaScript applications or libraries using modern features of the JavaScript language. It is inspired by Create React App project and is using Webpack and Babel for bundling and transpiling of the code.
It is originally developed for the Xolabot project, but it can be used anywhere.
Installation
Xolabot Scripts can be installed with npm into your project as a single dependency:
$ npm install xolabot-scripts
Make sure you add following scripts to your package.json
file:
{
"scripts": {
"start": "xolabot-scripts start",
"build": "xolabot-scripts build"
}
}
Feel free to use other names for scripts instead of start
and build
.
Usage
Using npm start
Runs the app in development mode.
Open http://localhost:3000 to view it in the browser.
The page will automatically reload if you make changes to the code.
You will see the build errors and warnings in the console and browser.
Before using the start
script, you will need to:
- Create
public/index.html
file in the root directory of your project. - Include a bundled script
<script src="main.js"></script>
in the index.html
file you previously created.
Using npm run build
Builds the app for production to the build
folder. The output file main.js
will be minified.
Override Webpack Configuration
Xolabot Scripts can be extended by overriding default Webpack configuration. You can override Webpack configuration by creating webpack.config.js
file in the root directory of your project. Xolabot Scripts are using webpack-merge for merging default configuration files with the one in your project directory.
Contributing
Publishing
For publishing on npm, we recommend using np
package. It has an interactive UI, ensures you are publishing from the master branch, will build project before publishing, run tests, etc. See documentation.
To publish a patch version, run:
$ npx np patch
This will tag commit with 0.0.1 version increment, run build and tests, and push commit and tags to origin.
Other publishing options are npx np {major|minor|patch}
.