Use next commands to install and update your workspace Or use this repository as a template repository, if so - you can skip this step.
# 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, all with prefix your-
If your nodejs version newer than
package.json current add || your-node-version
.
// 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 fotget 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>.
Your-package-name is <a href="./LICENSE">MIT licensed</a>.<br/>
Your-package-name 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.1
tag andv0.0.1
as a title and updated README file as description.
If you creating library you may publish it now to npm with
npm publish
command.
Congratulations, package initialized 🚀
This workspace have commonjs in use by default. You can switch it in package.json if you want.
dist
directory used for fronted package analog. You can use it if your package is multi-platform based.eslint
astrohelm eslint rulestypes
.d.ts library types exportsCHANGELOG.md
in use for project history documentationMakefile
ultimate commands shortcuts creatortests
here you can put all test coverage of your package.github
github ci pipeline by defaultlib
folder 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.