Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including nodify-core with all npm packages installed. Try it out:

nodify-core lists no main file and has no index.js, so it can't be directly required. If this is a mistake, please let us know. It may however contain internal files that you can require manually:

// require("nodify-core/[??]")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

nodify-core v5.0.1

Nodify is a build tool system for Node.js

Nodify

nodify-status npm version

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. errors

    NOTE: nodify dev automatically sets process.env.node to development,

    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 to production,

    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

License

MIT

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free