UNPKG

@oreodusk/oreonyx

Version:
102 lines (68 loc) 3.75 kB
# oreonyx **Ui** module bundler helper. **oreonyx** is a module bundler helper. It works with react js(vanilla js as well). If you want to use react js in your project then **oreonyx** can help you to bundle your javascript code and assets both client side rendering and server side rendering. **Installation**: `npm install @oreodusk/oreonyx --save-dev` or `yarn add @oreodusk/oreonyx -D` **Example** **of** **usages:** Before the get started with **oreonyx** you have to do some important work to do. First, you have to create two files in your project root directory. 1A. `nyx.browser.js` and 1B. `nyx.server.js` (If you are not using ssr then you don't need to create this file); Second, you have to create a `template.html` file in your project root directory. **oreonyx** give two api `BrowserApi` and `ServerApi` for client side and server side module bundler. **BrowserApi:** `nyx.browser.js` ~~~~ const {BrowserApi} = require('@oreodusk/oreonyx'); //more control over markup(html) /*const props = { markUpControl: { ext: 'html', dir: 'dist' }, devServer: true //if you want to start development server }*/ module.exports = BrowserApi.entry('./view/js/browser.js') .setHost('http://localhost:5050').setMode('development').run(); ~~~~ By default, **oreonyx** generates markup with php extension in `self` or entry directory that you had passed. To control over html markup you can create above `props` object. `props` object has `markUpControl` property which is also an object with two properties `ext and dir`. `ext` means extension. You can use `html or php` as you like. `dir` means directory where should markup file will go to. It has two options `self and dist`. If you choose to `dist` then output markup file goes to `public` directory. `props` object has also `devServer` boolean property to start development server. A last, pass the `props` object as argument of `run(props)` method like this. If you want to bundle ssr code then you can use `ServerApi` **ServerApi:** `nyx.server.js` ~~~~ const {ServerApi} = require('@oreodusk/oreonyx'); //----------------------------look :)------------------------------------// // Here you've to give the entry path of server-side-rendering // //---------------------------------------------------------------------// module.exports = ServerApi.entry('./view/js/server.js') .setHost("http://localhost:5050").setMode("development").run(); ~~~~ This `ServerApi` bundle your code and put it on the `runtime/ssr/server.js` file. **Yeah** here all about it is. You don't need to manually setup anything with `webpack`. **Oh,** by the way **oreonyx** has a nice command line tool called `nyx`. If you wanna use `nyx` then you have to create some script in your project package.json file. ~~~~ "scripts": { "build:dev": "nyx build dev", "build:ssr": "nyx ssr dev", "build:csr": "nyx csr dev", "serve": "nyx csr dev --serve", "build:ssr:watch": "nyx ssr dev --watch", "build:csr:watch": "nyx csr dev --watch", "nyx:prod": "nyx build prod" }, ~~~~ Here, `build:dev` command bundle both the client side and server side code in `development` mode. `build:ssr` command only bundle your server side code in `development` mode. `build:csr` command only bundle your client side code in `development` mode. `serve` command only bundle your client side code in `development` mode and start development server. `build:ssr:watch` command only bundle your server side code in `watch` mode and in `development` mode. `build:csr:watch` command only bundle your client side code in `watch` mode and in `development` mode. `nyx:prod` command bundle both csr and ssr code in `production` mode. **End**