fyn
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:
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:
fyn add ../another-package
To see detailed stats about any package, use the stat
command:
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:
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:
---
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:
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.