Uh oh!
There was an error while loading.Please reload this page.
- 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 aJS|TS
library in 10 seconds.
Libraries based on jslib-base can be shared on thejsmini platform.
- Interactive CLI for project initialization
- Upgrade functionality – Easily upgrade old libraries with one command
- Supports both JavaScript and TypeScript
- Build & Packaging Solutions
- TypeScript + Babel + Rollup
- Automatic third-party dependency injection (supports tree shaking)
- Multi-Environment Compatibility
- Supports native browser script usage
- Provides UMD and ESM modules, compatible with Webpack, Vite, and other ecosystems
- Adapts to both old and new Node.js module systems (CommonJS + ESM)
- Code Style & Linting
- ESLint + Prettier + Husky + Lint-Staged
- Unit Testing Suite
- Mocha + Expect.js + Istanbul + NYC + Coveralls
- Commit Linting
- Commitlint + Commitizen
- GitHub Actions
- CI + Release
- Local Development Server
- http-server
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
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors10
Uh oh!
There was an error while loading.Please reload this page.