nodify-core
v5.0.1
Published
Nodify is a build tool system for Node.js
Downloads
27
Maintainers
Readme
Nodify
Nodify is a build tool system for Node.js, allowing you to write next-generation Node.js applications with zero configuration.
Getting started
Assumptions
Nodify assumes by default the entry point of your application to be
src/index.js
and will put output file in build/main.js
, although everything
is customizable.
Installation
Main package is named nodify-core
, install it as a devDependency in your
app.
via npm
npm i -D nodify-core
via yarn
yarn add -D nodify-core
Usage
Nodify is exposes two cli commands
nodify dev
Runs nodify in development mode. Allowing you to execute code and reload on
change, also providing helpful errors.
NOTE: nodify dev automatically sets
process.env.node
todevelopment
,and generates source map to support debugging.
nodify build
Builds app ready for production.
Build version will be outputted in
build/main.js
,which you can run directly via node.
node ./build/main
NOTE: nodify build automatically sets
process.env.node
toproduction
,and doesn't generate any source maps.
Your package.json
should look like
{
...
"scripts": {
"dev": "nodify dev",
"build": "nodify build",
...
}
...
}
Customization
Under the hood nodify uses rollup and babel, which come pre-configured, but can with be completely customized.
Rollup
To customize rollup config, create a nodify.config.js
in the root directory of
your app.
module.exports = {
rollup: (config, env) => {
// access the config here
// also process.env.NODE_ENV can be accessed using env
// and customize it as you wish
// finally remember to return the modified config.
// by default during dev process.env.NODE_ENV is 'development'
// and during build process.env.NODE_ENV is 'production'
return config;
},
};
Checkout the example for custom rollup config
NOTE: The default config for rollup can be found here.
Babel
To customize babel plugins and presets configuration, create a .babelrc
file
in the root directory of your app.
If this file exists nodify will rely upon it rather than its internal configuration, therefore you must use nodify preset in your babelrc file, to make it work with nodify.
Your .babelrc
should look like
{
"presets": [
"nodify-core/babel",
// add other presets
],
"plugins": [
// add plugins
]
...
}
Checkout the example for custom babel config
Built with
Examples
Please refer the examples folder for basic setups with different configurations.
Acknowledgement
Prior Art
Backpack - Works in same way and uses
webpack
.
Inspiration
backend-with-webpack by @jlongster for explaining the need of build tools on node backend.
create-react-app for popularizing pre-configured tools that help jump start development.
next.js for creating customizable configurations.
License
MIT