From c8b804e88ee92b7c920c89041fe5f56bcfab7800 Mon Sep 17 00:00:00 2001 From: David Herman Date: Sun, 14 Apr 2024 16:27:16 -0700 Subject: [PATCH] command-line option documentation in the main README --- pkgs/create-neon/README.md | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/pkgs/create-neon/README.md b/pkgs/create-neon/README.md index 2384de5cb..79211316a 100644 --- a/pkgs/create-neon/README.md +++ b/pkgs/create-neon/README.md @@ -6,6 +6,42 @@ The `create-neon` tool bootstraps [Neon](https://neon-bindings.com) projects, wh You can conveniently use this tool with the [`npm init`](https://docs.npmjs.com/cli/v7/commands/npm-init) syntax: +### Creating a Simple Project + +To create a simple Neon project that consists purely of Rust code: + +```sh +$ npm init neon [ ...] my-project +``` + +#### Global Options + +```sh +-y|--yes Skip interactive `npm init` questionnaire. +``` + +### Creating a Portable Library + +To create a portable npm library with pre-built binaries: + +```sh +$ npm init neon [ ...] --lib [ ...] my-project +``` + +This will generate a project that can be used by pure JavaScript or TypeScript consumers without them even being aware of the use of Rust under the hood. It achieves this by publishing pre-built binaries for common Node platform architectures that are loaded just-in-time by a JS wrapper module. + +This command generates the necessary npm and CI/CD configuration boilerplate to require nearly zero manual installation on typical GitHub-hosted repos. The only manual step required is to configure GitHub Actions with the necessary npm access token to enable automated publishing. + +This command chooses the most common setup by default, but allows customization with fine-grained configuration options. These configuration options can also be modified later with the [Neon CLI](https://www.npmjs.com/package/@neon-rs/cli). + +#### Library Options + ```sh -$ npm init neon my-project +--ci none|github CI/CD provider to generate config for. + (Default: github) +--bins none|npm[:org] Cache provider to publish pre-built binaries. + (Default: npm, with org inferred from package) +--platform Binary platform to add support to this library for. + This option can be specified multiple times. + (Default: macos, linux, windows) ```