diff options
| author | Taylor Mullen <[email protected]> | 2025-05-23 12:27:48 -0700 |
|---|---|---|
| committer | N. Taylor Mullen <[email protected]> | 2025-05-23 13:55:06 -0700 |
| commit | 8590efd229eb05fcbc0c3858c6640a770b61b95a (patch) | |
| tree | 0f36b4f454c0871f8e8b244cf42743fcd8900ec7 /eslint.config.js | |
| parent | 8f266f96524f1b09fb2fdac2730a0821334c8273 (diff) | |
feat: Enable npx execution directly from GitHub URL
This commit modifies the packaging setup to allow the CLI to be
executed directly from its GitHub URL using `npx`, for example:
`npx https://github.com/google-gemini/gemini-cli` (once merged to main).
This is achieved without requiring the bundle to be checked into
the repository.
Key changes and motivations:
- Modify `scripts.prepare` to run `npm run bundle`:
Ensures the CLI bundle is generated automatically when `npx`
installs the package from a git URL. This replaces previous
approaches (e.g., using `prepack`) which were not consistently
triggered in the `npx` environment.
- Update `scripts.bundle` to use a direct path for `esbuild`
and externalize `sqlite3`:
Using `node_modules/.bin/esbuild` provides a more reliable way
to invoke the bundler. Externalizing `sqlite3` is crucial for
correctly handling its native addon, preventing runtime errors.
- Add `bin`, `files`, and root `sqlite3` dependency:
- The `bin` field defines the `gemini` command.
- The `files` array ensures the generated `bundle/` directory is
recognized by npm.
- `sqlite3` is added as a root dependency to ensure it's
installed by `npx` when `gemini-code` is fetched, allowing the
externalized module to be resolved.
These changes collectively ensure that the necessary build artifacts
are created on-the-fly during `npx` installation, providing a
seamless execution experience directly from the GitHub repository URL.
Diffstat (limited to 'eslint.config.js')
| -rw-r--r-- | eslint.config.js | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/eslint.config.js b/eslint.config.js index da9e3221..33447b5f 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -33,6 +33,7 @@ export default tseslint.config( 'packages/cli/dist/**', 'packages/server/dist/**', 'eslint-rules/*', + 'bundle/**', ], }, eslint.configs.recommended, |
