UNPKG

@randajan/simple-lib

Version:

Supersimple start for developing custom js library

114 lines (96 loc) 4.96 kB
# Simple node.js lib [![NPM](https://img.shields.io/npm/v/@randajan/simple-lib.svg)](https://www.npmjs.com/package/@randajan/simple-lib) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com) Goal is to provide supersimple start for developing custom js library. ## Instalation ```console npm install -D @randajan/simple-lib; ``` or ```console yarn add -D @randajan/simple-lib; ``` ## Usage ```javascript import slib from "@randajan/simple-lib"; import fs from "fs-extra"; // optional //those values are default values slib( isBuild=true, //true = generate build; false = start dev server; { port:3000, //port of dev server mode:"web", //"web"=frontend lib, "node"=backend lib rebuildBuffer:100, //delay between src changed and rebuild happens minify:false, //global minify - true = generate minify build bundle:[], //global include libs in the bundle plugins:[], //global esbuild plugins loader:{}, //global esbuild loader info:{}, //global package info jsx:{ //global jsx config transform:undefined, //global es-build jsx dev:undefined, //global es-build jsxDev factory:undefined, //global es-build jsxFactory fragment:jsx.factory, //global es-build jsxFragment; if null then jsx.factory will be set importSource:undefined //global es-build jsxImportSource }, lib:{ dir:"", //lib root directory srcdir:"src", //lib source code directory distdir:"dist", //lib build directory minify:false, //lib minify - true = generate minify build entries:["index.js"], //lib entries files bundle:[], //lib esbuild include libs in the bundle plugins:[], //lib esbuild plugins loader:{}, //lib exbuild loader info:{}, //lib package info jsx:{ //lib jsx config transform:undefined, //lib es-build jsx dev:undefined, //lib es-build jsxDev factory:undefined, //lib es-build jsxFactory fragment:jsx.factory, //lib es-build jsxFragment; if null then jsx.factory will be set importSource:undefined //lib es-build jsxImportSource }, standalone:{ //standalone build of library distdir:"standalone", //standalone build directory entries:{}, //standalone named entries - required! bundle:[], //standalone include libs in the bundle - default same as lib plugins:[], //standalone plugins - default same as lib loader:{} //standalone loader - default same as lib jsx:{} //standalone jsx - default same as lib } }, demo:{ dir:"demo", //demo root directory srcdir:"src", //demo source code directory distdir:"dist", //demo build directory minify:false, //demo minify - true = generate minify build entries:["index.js"], //demo entries files bundle:[], //demo esbuild include libs in the bundle plugins:[], //demo esbuild plugins loader:{}, //demo esbuild loader info:{}, //demo package info jsx:{ //demo jsx config transform:undefined, //demo es-build jsx dev:undefined, //demo es-build jsxDev factory:undefined, //demo es-build jsxFactory fragment:jsx.factory, //demo es-build jsxFragment; if null then jsx.factory will be set importSource:undefined //demo es-build jsxImportSource }, } } ) ``` ## Requirements ```javascript ... "app-root-path": "^3.1.0", "chalk": "^5.2.0", "chokidar": "^3.6.0", "esbuild": "0.16.17", "esbuild-node-externals": "^1.13.0", "fs-extra": "^11.2.0", "live-server": "^1.2.2" ... ``` Happy hacking ## License MIT © [randajan](https://github.com/randajan)