You can use this repository as template - otherwise install it manually:
# Download repository git clone https://github.com/astrohelm/node-workspace rm -rf ./path/to/workspace/.git ./path/to/workspace/package-lock.json cd ./path/to/workspace/ # Update and install dependencies ncu -u npm i # Update node.js (optional) nvm install latest nvm use latest
Update package json:
- Replace all fields with prefix
your- - Update engines, if current is out of date
- Remove browser field & dist folder, if you don't support it
// package.json { "license": "MIT", "version": "0.0.1", "type": "commonjs", "name": "your-package-name", "homepage": "https://astrohelm.ru", "description": "your-package-description", "author": "your-name <your-mail>", "keywords": ["your-keyword #1", "your-keyword #n"], "main": "index.js", "types": "types/index.d.ts", "packageManager": "npm@9.6.4", "readmeFilename": "README.md", "engines": { "node": "18 || 19 || 20" }, "browser": {}, "files": ["/dist", "/lib", "/types"], "scripts": { "test": "node --test && tsc", "dev": "node index.js", "prettier:fix": "prettier --write \"**/*.{js,ts,json,html,cjs,md,yaml}\"", "eslint:fix": "eslint --fix \"**/*.{js,ts}\"" }, "repository": { "type": "git", "url": "git+https://github.com/astrohelm/your-package-name.git" }, "bugs": { "url": "https://github.com/astrohelm/your-package-name/issues", "email": "your-mail" }, "devDependencies": { "@types/node": "^18.15.10", "eslint": "^8.40.0", "eslint-config-astrohelm": "^1.0.0", "eslint-config-prettier": "^8.8.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-prettier": "^4.2.1", "prettier": "^2.8.8", "typescript": "^5.0.2" } }
Go to CHANGELOG.md and update it for your package. WARNING ! Don't forget about date (xxxx-xx-xx).
<!-- CHANGELOG.md --> # Changelog ## [Unreleased][unreleased] ## [0.0.1][] - xxxx-xx-xx - Stable release version - Repository created [unreleased]: https://github.com/astrohelm/your-package-name/compare/v0.0.1...HEAD [0.0.1]: https://github.com/astrohelm/your-package-name/releases/tag/v0.0.1
Update AUTHORS
<!-- AUTHORS --> your-name <your-mail>
Replace your README.md with next information and change Your-package-name to actual.
<!-- README.md --> <h1 align="center">Your-package-name v0.0.1</h1> <h2 align="center">Initial release π</h2> <h2 align="center">Copyright & contributors</h2> <p align="center"> Copyright Β© 2023 <a href="https://github.com/astrohelm/Your-package-name/graphs/contributors">Astrohelm contributors</a>. This repository is <a href="./LICENSE">MIT licensed</a>.<br/> And it is part of <a href="https://github.com/astrohelm">Astrohelm ecosystem</a>. </p>
WARNING ! Update this file before moving throw this step.
Create a new package in [organization][https://github.com/astrohelm/] repository. Use next commands to save you package.
git init git remote add origin your-package-location # Start from here, if you used template git branch -M main # if your default branch is not main git commit -am "Repository init" git tag v0.0.1 git push origin main git push origin v0.0.1 git checkout -b dev git push origin dev
Return to your organization repository and do:
- Add keywords
- Update description
- Draft release with
v0.0.1tag andv0.0.1as a title and updated README file as description.
If you want to create library you could publish it to npm with
npm publishcommand.
Congratulations, package initialized π
This workspace have commonjs in use by default. You can switch it in package.json if you want.
distdirectory used for fronted package analog. You can use it if your package is multi-platform, readme.eslintastrohelm eslint rulestypes.d.ts library types exportsCHANGELOG.mdin use for project history documentationMakefileultimate commands shortcuts creatortestshere you can put all test coverage of your package.githubgithub ci pipeline by defaultlibfolder should contain all you library logic,WARNING ! Remove if you not writing library. Replace with src folder.
Copyright Β© 2023 Astrohelm contributors.
This workspace is MIT licensed.
And it is part of Astrohelm ecosystem.