npm-package-maker-lite
v0.1.1
Published
Scaffold and optionally publish npm packages from a local or remote JSON config.
Downloads
17
Maintainers
Readme
npm-package-maker-lite
Scaffold and optionally publish npm packages from a local file, a remote URL, or stdin JSON.
Install (local dev)
# in this folder
npm installCLI usage
npmmaker --help
# From URL
npmmaker --from https://example.com/my-package-config.json --dir ./out/my-pkg
# With auth header
npmmaker --from https://api.example.com/configs/123 -H "Authorization: Bearer <token>" --dir ./out/my-pkg
# From local file
npmmaker --from ./config.json --dir ./out/my-pkg
# From stdin
cat config.json | npmmaker --dir ./out/my-pkg
# Start HTTP API server
npmmaker --serve --port 8787 --base-dir ./out --token mysecret
# Clean a generated directory
npmmaker --clean ./out/my-pkgExample output:
Config format:
{
"name": "my-lib",
"version": "0.1.0",
"description": "My generated lib",
"main": "index.js",
"type": "commonjs",
"bin": { "my-lib": "./cli.js" },
"scripts": { "test": "node -e \"console.log('ok')\"" },
"keywords": ["demo"],
"author": "",
"license": "MIT",
"files": ["index.js", "cli.js", "README.md"],
"publishConfig": { "access": "public" },
"filesMap": {
"index.js": "module.exports = () => 'hello';\n",
"cli.js": "#!/usr/bin/env node\nconsole.log(require('./index.js')());\n",
"README.md": { "url": "https://raw.githubusercontent.com/user/repo/main/README.md" }
},
"vars": { "PACKAGE_NAME": "my-lib" },
"readme": "# my-lib\n\nHello!\n"
}API server endpoints
# Health
curl http://localhost:8787/health
# Version
curl http://localhost:8787/version
# Scaffold (Bearer token optional if server started with --token)
curl -H "Authorization: Bearer mysecret" -H "Content-Type: application/json" \
-X POST http://localhost:8787/scaffold?dir=my-lib \
-d '{
"name": "my-lib",
"version": "0.1.0",
"filesMap": {
"index.js": "module.exports = () => 'hello';\n"
}
}'
# Clean
curl -H "Authorization: Bearer mysecret" -H "Content-Type: application/json" \
-X POST http://localhost:8787/clean -d '{"dir":"./out/my-lib"}'Publish to npm
- Log in:
npm loginOptionally change the package name in
package.jsonif the name is taken.Publish (public):
npm publish --access publicUninstall / revert
- Remove generated package: delete the folder or use
npmmaker --clean <dir>. - Uninstall the CLI from your machine:
npm uninstall -g npm-package-maker-liteLicense
MIT
