- Notifications
You must be signed in to change notification settings - Fork149
A modern JavaScript|Typescript library scaffolding, modularity, purity & extras
License
yanhaijing/jslib-base
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
English |简体中文
The bestJS|TS
third-party library scaffold, quickly setup the basic framework of a new library in 10 seconds.
Libraries based on jslib-base can be shared on thejsmini platform.
- Command-line tool for quick creation and seamless upgrades
- Supports writing source code in ES6+ or TypeScript, and compiles to generate production code
- Auto-injection of third-party dependencies (automatically removes unnecessary code in third-party dependencies through tree shaking)
- Supports multiple environments (native browser, AMD, commonjs, Webpack, Rollup, vite, fis, Node.js, etc.)
- Integrated code style checker (eslint + prettier + husky)
- Integrated unit test environment (mocha)
- Integrated test coverage report (istanbul+nyc)
- Integrated continuous integration tool github action
- Integrated withjsmini
To create a new project, it is recommended to use Node.js version 18 or higher.
$ npx @js-lib/cli new mylib# Interactive queries, input project info$cd mylib$ npm i
To update the project, just execute the following command in the project root directory.
$ npx @js-lib/cli update
For old projects, you can't directly execute the update command, you can first initialize a config file.
$ npx @js-lib/cli new -c
Directory Overview
.├── demo Usage demo├── dist Compiled out code├── doc Project documents├── src Source code directory├── test Unit tests├── CHANGELOG.md Change log└── TODO.md To-do features
Common command scripts
$ npm run lint$ npm runtest$ npm run build$ npm run release$ npm publish
If you only want to modify the library code generated by the CLI, you can directly edit the template code, which is simpler.
After merging, I will migrate the template to the CLI. The template repository is as follows:
This project uses lerna to manage multiple plugins, common lerna commands are:
$ npx lerna init# Initialization$ npx lerna create @js-lib/todo# Create a package$ npx lerna add yargs --scope=@js-lib/cli# Install dependencies for a package$ npx lerna list# List all the packages$ npx lerna bootstrap# Install all dependencies$ npx lerna link# Create all links$ npx lerna changed# List the packages to be updated in the next release$ npx lerna publish# Release with tag, upload to git, upload to npm
About
A modern JavaScript|Typescript library scaffolding, modularity, purity & extras