UNPKG

fyn

Version:

fyn is the NPM for fynpo -- a zero setup monorepo tool

135 lines (105 loc) 4.82 kB
# fyn [![NPM version][npm-image]][npm-url] [![Apache 2.0 License][apache-2.0-blue-image]][apache-2.0-url] [![Build Status][build-image]][build-url] [![Coverage Status][coveralls-image]][coveralls-url] **fyn** is the package manager for [fynpo], a zero setup monorepo manager for node.js. It treats your disk as a registry so you can develop, publish, and test all your packages using local copies directly. ## Quick Start Interested in giving it a quick test? Just install and run it on your project: ```sh npm i -g fyn cd <your-project> fyn ``` Want to add a package on your local disk as a dependency to your project? Do this: ```sh fyn add ../another-package ``` To see detailed stats about any package, use the `stat` command: ```sh fyn stat lodash ``` - It can read and use some settings from your `.npmrc`. - It can use `npm-shrinkwrap.json` or `package-lock.json` files. ## Configuring fyn fyn options can be listed in help: ```sh fyn --help ``` fyn loads config from `CWD/.fynrc`, `CWD/.npmrc`, `~/.fynrc`, and `~/.npmrc` in this specified order, from highest to lowest priority. From `.npmrc`, only fields `registry`, `@<scope>:registry`,`email`, and `_auth` are read. `.fynrc` file can be an [ini] or `YAML` format. For the `YAML` format, the first line must be `---`. Below is an `YAML` example, with all the options set to their default values: ```yml --- registry: https://registry.npmjs.org "@scope:registry": https://registry.custom.com offline: false forceCache: false lockOnly: false progress: normal logLevel: info production: false centralStore: false ``` Or as an ini: ```ini registry=https://registry.npmjs.org @scope:registry=https://registry.custom.com offline=false forceCache=false lockOnly=false progress=normal logLevel=info production=false centralStore=false ``` ### Thank you `npm` Node Package Manager is a very large and complex piece of software. Developing `fyn` was 10 times easier because of the generous open source software from the community, especially the individual packages that are part of `npm`. Other than benefiting from the massive package ecosystem and all the documents from `npm`, these are the concrete packages from `npm` that `fyn` is using directly. - [node-tar] - for untaring `tgz` files. - [semver] - for handling Semver versions. - [pacote] - for retrieving `npm` package data. - [ini] - for handling `ini` config files. - [npm-packlist] - for filtering files according to npm ignore rules. - [npm-lifecycle] - for npm_config env and offering `run` as a convenience. - [npmlog] - for offering the `run` command as a convenience. - And all the other packages they depend on. ## License Copyright (c) 2015-2021, WalmartLabs Licensed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0). [node_options]: https://nodejs.org/dist/latest-v8.x/docs/api/cli.html#cli_node_options_options [`-r` option]: https://nodejs.org/docs/latest-v6.x/api/cli.html#cli_r_require_module [fyn-demo-gif]: ./images/fyn-demo.gif [ini]: https://www.npmjs.com/package/ini [node_preserve_symlinks]: https://nodejs.org/docs/latest-v8.x/api/cli.html#cli_node_preserve_symlinks_1 [require-at]: https://www.npmjs.com/package/require-at [travis-image]: https://travis-ci.org/electrode-io/fyn.svg?branch=master [travis-url]: https://travis-ci.org/electrode-io/fyn [npm-image]: https://badge.fury.io/js/fyn.svg [npm-url]: https://npmjs.org/package/fyn [coveralls-image]: https://coveralls.io/repos/github/electrode-io/fyn/badge.svg?branch=master [coveralls-url]: https://coveralls.io/github/electrode-io/fyn?branch=master [daviddm-image]: https://david-dm.org/electrode-io/fyn/status.svg [daviddm-url]: https://david-dm.org/electrode-io/fyn [daviddm-dev-image]: https://david-dm.org/electrode-io/fyn/dev-status.svg [daviddm-dev-url]: https://david-dm.org/electrode-io/fyn?type=dev [apache-2.0-blue-image]: https://img.shields.io/badge/License-Apache%202.0-blue.svg [apache-2.0-url]: https://www.apache.org/licenses/LICENSE-2.0 [npm scripts]: https://docs.npmjs.com/misc/scripts [node-tar]: https://www.npmjs.com/package/tar [semver]: https://www.npmjs.com/package/semver [pacote]: https://www.npmjs.com/package/pacote [ini]: https://www.npmjs.com/package/ini [npm-packlist]: https://www.npmjs.com/package/npm-packlist [pnpm]: https://www.npmjs.com/package/pnpm [npm]: https://www.npmjs.com/package/npm [lerna]: https://www.npmjs.com/package/lerna [fynpo]: https://www.npmjs.com/package/fynpo [npm link]: https://docs.npmjs.com/cli/link.html [npm-lifecycle]: https://www.npmjs.com/package/npm-lifecycle [npmlog]: https://www.npmjs.com/package/npmlog [build-image]: https://github.com/jchip/fynpo/actions/workflows/ci.yml/badge.svg [build-url]: https://github.com/jchip/fynpo/actions/workflows/ci.yml [fynpo]: https://github.com/jchip/fynpo