https://github.com/lekoarts/secco
Local package testing made easy
https://github.com/lekoarts/secco
cli dev-cli developer-tools lekoarts-oss local secco verdaccio yalc
Last synced: about 1 year ago
JSON representation
Local package testing made easy
- Host: GitHub
- URL: https://github.com/lekoarts/secco
- Owner: LekoArts
- License: mit
- Created: 2023-09-23T14:58:24.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2025-04-04T09:25:48.000Z (about 1 year ago)
- Last Synced: 2025-04-13T02:12:44.123Z (about 1 year ago)
- Topics: cli, dev-cli, developer-tools, lekoarts-oss, local, secco, verdaccio, yalc
- Language: TypeScript
- Homepage: https://secco.lekoarts.de
- Size: 3.17 MB
- Stars: 19
- Watchers: 2
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# secco
**Local package testing made easy.**
secco is a command-line tool for local development. It uses [Verdaccio](https://verdaccio.org/) and direct file copying to apply your latest changes to other projects.
When developing and maintaining (multiple) packages, it's a real hassle to use something like `npm link`. But you also don't want to publish your changes to npm's remote registry. Both have a lot of pitfalls as they might break on complicated dependency chains or symlinking.
secco solves these problems and streamlines the process of local package testing.
**Want to try it?** Start with our [Getting Started](https://secco.lekoarts.de/guide/) guide. Need a longer explanation? Read our [Learn secco](https://secco.lekoarts.de/guide/learn-secco/) tutorial.
**Features:**
- **File Sync & Package Publishing.** By default, changes will be copied over from the source into the destination's `node_modules` folder. If necessary, changes are published to a local [Verdaccio](https://verdaccio.org/) registry first, so that you don't have to worry about symlinks or dependency hell.
- **Link Multiple Projects.** secco reads the `.seccorc` file to make the connection between destination and source. This allows you to use `secco` with as many source folders as you wish.
- **npm, yarn, pnpm, and bun support.** You can use any of these package managers in your source and destination projects.
- **Watch and CI mode.** By default, secco starts a watch task. But you can also only run it once, enabling CI End-To-End testing use cases.
- **Workspaces.** Your source & destination folders can be a monorepo using workspaces.
## Installation
Using a global installation:
```shell
npm install --global secco
```
You can also use [`npx`](https://docs.npmjs.com/cli/v10/commands/npx) to invoke it.
```shell
npx secco@latest --help
```
## Usage
It's recommended to also go through the [Getting Started](https://secco.lekoarts.de/guide/) guide to understand how you can leverage `secco` in your projects.
secco uses the terms **source** and **destination** throughout its docs and messages. The **source** refers to the root folder that contains the package(s) that you want to test in other places. The **destination** refers to the folder you want to test your package(s) in. So your destination's `package.json` should have the source as a dependency.
secco **requires** to either find a `.seccorc` file in the destination (with `source.path` set) or that the `SECCO_SOURCE_PATH` environment variable is defined.
Here's an overview of all available commands and flags:
```shell
Usage: secco
Commands:
secco init Initialize a new .seccorc file
secco packages [packageNames...] Specify list of packages you want to link
Options:
--help Show help
--version Show version number
--scan-once Scan source once and do not start file watching
--force-verdaccio Disable file copying/watching and force usage of Verdaccio
--verbose Output verbose logging
Examples:
secco Scan destination and copy files from source
secco packages ars aurea Copy specified packages from source to destination
```
## Documentation
Visit secco's [official documentation](https://secco.lekoarts.de)
## Contributing
Want to improve secco? Great! Read the [Contributing guide](https://github.com/LekoArts/secco/blob/main/CONTRIBUTING.md) to get started.