Merge pull request #511 from verdaccio/fix-502
fix: Update website and move it to the root
|
@ -1 +0,0 @@
|
|||
theme: jekyll-theme-minimal
|
|
@ -13,14 +13,14 @@ Verdaccio relies on `yarn` instead `npm` to download depenedencies.
|
|||
|
||||
## Scripts
|
||||
|
||||
We have a list of scripts that you will use for diferent kind of tasks, in the following section we describe all posible task based on branches. (yes 🎉🎉🎉 !! 🚧 we are working in the version 3.x that will provide a better and modern stack based on **Babel** and **Flow** 🚧.
|
||||
We have a list of scripts that you will use for diferent kind of tasks, in the following section
|
||||
we describe all posible task based on branches.
|
||||
|
||||
### Branch (2.x)
|
||||
|
||||
#### Master branch (2.x)
|
||||
On branch `2.x` the unique part we have to build is the UI which is based on React.js, webpack and CSS Modules.
|
||||
|
||||
On master branch the unique part we have to build is the UI which is based on React.js, webpack and CSS Modules.
|
||||
|
||||
### Scripts
|
||||
#### Scripts
|
||||
|
||||
script | Description
|
||||
--- | --- |
|
||||
|
@ -42,9 +42,9 @@ build:docker | create a local docker image with `verdaccio`
|
|||
build:rpi | create a local docker for raspberry pi image with `verdaccio` **(experimental with no support)**
|
||||
|
||||
|
||||
#### Branch (3.x)
|
||||
#### Master branch (3.x)
|
||||
|
||||
The next major version is based on `babel` and `flow`. If you switch from master ensure to run `yarn install` again.
|
||||
The current major version is based on `babel` and `flow`. If you switch from master ensure to run `yarn install` again.
|
||||
|
||||
*Note: Only new scripts in bold*
|
||||
|
||||
|
@ -58,10 +58,12 @@ script | Description
|
|||
release | this script is used to generate changelog and raise up the version according the commits messages
|
||||
prepublish | it ensures before publish the new ui is being generated
|
||||
test | run all the test `jest`
|
||||
test:unit | run the unit test
|
||||
test:func | run the funtional test
|
||||
pre:ci | specific task for CI, build the UI required for test
|
||||
pretest | A shorcut for transpile the code
|
||||
test:ci | run test generating coverage
|
||||
test:only | run only test
|
||||
coverage:publish | publish on `codecov` the coverage (don't use it)
|
||||
coverage:publish | publish on `codecov` the coverage (CI task specific, do not use it)
|
||||
lint | run the linting for javascript code.
|
||||
lint:css | run the linter for `css`
|
||||
dev:webui | run a `webpack` server with hot reloading enabled `http://localhost:4872/#/` it requires a `verdaccio` server running in port `4873`.
|
||||
|
|
13
docs/cli.md
|
@ -8,10 +8,19 @@ The verdaccio CLI is your go start the application.
|
|||
## Commands
|
||||
|
||||
```bash
|
||||
$ verdaccio --listen 4000 --config ./config.yaml
|
||||
$ verdaccio --listen 4000 --config ~./config.yaml
|
||||
```
|
||||
|
||||
Command | Default | Example | Description
|
||||
--- | --- | --- | ---
|
||||
--listen \ **-l** | 4873 | -p 7000 | http port
|
||||
--config \ **-c** | ~/.local/verdaccio/config.yaml | ~/config.yaml | the configuration file
|
||||
--config \ **-c** | ~/.local/verdaccio/config.yaml | ~./config.yaml | the configuration file
|
||||
|
||||
## Default config file location
|
||||
|
||||
To locate the home directory, we rely on **$XDG_DATA_HOME** as a first choice and Windows environment we look for [APPDATA environment variable](https://www.howtogeek.com/318177/what-is-the-appdata-folder-in-windows/).
|
||||
|
||||
## Default storage location
|
||||
|
||||
We use **$XDG_DATA_HOME** environment variable as default to locate the storage by default which [should be the same](https://askubuntu.com/questions/538526/is-home-local-share-the-default-value-for-xdg-data-home-in-ubuntu-14-04) as $HOME/.local/share.
|
||||
If you are using a custom storage, this location is irrelevant.
|
||||
|
|
|
@ -99,7 +99,7 @@ publish:
|
|||
allow_offline: false
|
||||
```
|
||||
|
||||
<small>Since: *v2.3.6* due [#223](https://github.com/verdaccio/verdaccio/pull/223)</small>
|
||||
<small>Since: `verdaccio@2.3.6` due [#223](https://github.com/verdaccio/verdaccio/pull/223)</small>
|
||||
|
||||
### URL Prefix
|
||||
|
||||
|
@ -107,7 +107,7 @@ publish:
|
|||
url_prefix: https://dev.company.local/verdaccio/
|
||||
```
|
||||
|
||||
Since: *v2.3.6* due [#197](https://github.com/verdaccio/verdaccio/pull/197)
|
||||
Since: `verdaccio@2.3.6` due [#197](https://github.com/verdaccio/verdaccio/pull/197)
|
||||
|
||||
|
||||
### Max Body Size
|
||||
|
@ -157,8 +157,7 @@ notify:
|
|||
```
|
||||
|
||||
|
||||
|
||||
|
||||
> For more detailed configuration settings, please [check the source code](https://github.com/verdaccio/verdaccio/tree/master/conf).
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -61,9 +61,9 @@ We have support for **Kubernetes**, **Puppet**, **Ansible** and **Chef** and we
|
|||
|
||||
### I can do translations
|
||||
|
||||
Verdaccio aims to be multilingual, in order to achieve it we have the awesome support of [Crowdin](https://crowdin.com) that is an amazing platform for translations.
|
||||
Verdaccio aims to be multilingual, in order to achieve it **we have the awesome support** of [Crowdin](https://crowdin.com) that is an amazing platform for translations.
|
||||
|
||||
<img src="https://d3n8a8pro7vhmx.cloudfront.net/uridu/pages/144/attachments/original/1485948891/Crowdin.png" width="100px"/>
|
||||
<img src="https://d3n8a8pro7vhmx.cloudfront.net/uridu/pages/144/attachments/original/1485948891/Crowdin.png" width="400px"/>
|
||||
|
||||
We have setup a project where you can choose your favourite language, if you do not find your language feel free to request one [creating a ticket](https://github.com/verdaccio/verdaccio/issues/new).
|
||||
|
||||
|
@ -79,3 +79,82 @@ You will need learn how to build, [we have prepared a guide just for that](build
|
|||
Once you have played around with all scripts and you know how to use them, we are ready to go to the next step, run the [**Unit Test**](test.md).
|
||||
|
||||
|
||||
## Full list of contributors. We want to see your face here !
|
||||
|
||||
[<img alt="juanpicado" src="https://avatars0.githubusercontent.com/u/558752?v=4&s=117" width="117">](https://github.com/juanpicado) |[<img alt="rlidwka" src="https://avatars0.githubusercontent.com/u/999113?v=4&s=117" width="117">](https://github.com/rlidwka) |[<img alt="Meeeeow" src="https://avatars3.githubusercontent.com/u/19658647?v=4&s=117" width="117">](https://github.com/Meeeeow) |[<img alt="trentearl" src="https://avatars2.githubusercontent.com/u/802857?v=4&s=117" width="117">](https://github.com/trentearl) |[<img alt="ayusharma" src="https://avatars0.githubusercontent.com/u/6918450?v=4&s=117" width="117">](https://github.com/ayusharma) |
|
||||
:---: |:---: |:---: |:---: |:---: |
|
||||
[juanpicado](https://github.com/juanpicado) |[rlidwka](https://github.com/rlidwka) |[Meeeeow](https://github.com/Meeeeow) |[trentearl](https://github.com/trentearl) |[ayusharma](https://github.com/ayusharma) |
|
||||
|
||||
[<img alt="verdacciobot" src="https://avatars0.githubusercontent.com/u/35213902?v=4&s=117" width="117">](https://github.com/verdacciobot) |[<img alt="jmwilkinson" src="https://avatars0.githubusercontent.com/u/17836030?v=4&s=117" width="117">](https://github.com/jmwilkinson) |[<img alt="UnitedMarsupials" src="https://avatars1.githubusercontent.com/u/1486340?v=4&s=117" width="117">](https://github.com/UnitedMarsupials) |[<img alt="ryan-codingintrigue" src="https://avatars0.githubusercontent.com/u/9048902?v=4&s=117" width="117">](https://github.com/ryan-codingintrigue) |[<img alt="ramonornela" src="https://avatars1.githubusercontent.com/u/187946?v=4&s=117" width="117">](https://github.com/ramonornela) |
|
||||
:---: |:---: |:---: |:---: |:---: |
|
||||
[verdacciobot](https://github.com/verdacciobot) |[jmwilkinson](https://github.com/jmwilkinson) |[UnitedMarsupials](https://github.com/UnitedMarsupials) |[ryan-codingintrigue](https://github.com/ryan-codingintrigue) |[ramonornela](https://github.com/ramonornela) |
|
||||
|
||||
[<img alt="renovate-bot" src="https://avatars0.githubusercontent.com/u/25180681?v=4&s=117" width="117">](https://github.com/renovate-bot) |[<img alt="rodriguesbreno" src="https://avatars2.githubusercontent.com/u/19731692?v=4&s=117" width="117">](https://github.com/rodriguesbreno) |[<img alt="vernak2539" src="https://avatars2.githubusercontent.com/u/521270?v=4&s=117" width="117">](https://github.com/vernak2539) |[<img alt="jachstet-sea" src="https://avatars0.githubusercontent.com/u/7993508?v=4&s=117" width="117">](https://github.com/jachstet-sea) |[<img alt="lgaitan" src="https://avatars0.githubusercontent.com/u/5970350?v=4&s=117" width="117">](https://github.com/lgaitan) |
|
||||
:---: |:---: |:---: |:---: |:---: |
|
||||
[renovate-bot](https://github.com/renovate-bot) |[rodriguesbreno](https://github.com/rodriguesbreno) |[vernak2539](https://github.com/vernak2539) |[jachstet-sea](https://github.com/jachstet-sea) |[lgaitan](https://github.com/lgaitan) |
|
||||
|
||||
[<img alt="crispy1989" src="https://avatars1.githubusercontent.com/u/2132722?v=4&s=117" width="117">](https://github.com/crispy1989) |[<img alt="neuquino" src="https://avatars1.githubusercontent.com/u/1971027?v=4&s=117" width="117">](https://github.com/neuquino) |[<img alt="markpeterfejes" src="https://avatars3.githubusercontent.com/u/7912231?v=4&s=117" width="117">](https://github.com/markpeterfejes) |[<img alt="steve-p-com" src="https://avatars3.githubusercontent.com/u/5180548?v=4&s=117" width="117">](https://github.com/steve-p-com) |[<img alt="BartDubois" src="https://avatars0.githubusercontent.com/u/1180931?v=4&s=117" width="117">](https://github.com/BartDubois) |
|
||||
:---: |:---: |:---: |:---: |:---: |
|
||||
[crispy1989](https://github.com/crispy1989) |[neuquino](https://github.com/neuquino) |[markpeterfejes](https://github.com/markpeterfejes) |[steve-p-com](https://github.com/steve-p-com) |[BartDubois](https://github.com/BartDubois) |
|
||||
|
||||
[<img alt="karfau" src="https://avatars1.githubusercontent.com/u/135657?v=4&s=117" width="117">](https://github.com/karfau) |[<img alt="030" src="https://avatars1.githubusercontent.com/u/7524528?v=4&s=117" width="117">](https://github.com/030) |[<img alt="Qwerios" src="https://avatars2.githubusercontent.com/u/254447?v=4&s=117" width="117">](https://github.com/Qwerios) |[<img alt="wiggisser" src="https://avatars3.githubusercontent.com/u/3647678?v=4&s=117" width="117">](https://github.com/wiggisser) |[<img alt="kfatehi" src="https://avatars1.githubusercontent.com/u/175305?v=4&s=117" width="117">](https://github.com/kfatehi) |
|
||||
:---: |:---: |:---: |:---: |:---: |
|
||||
[karfau](https://github.com/karfau) |[030](https://github.com/030) |[Qwerios](https://github.com/Qwerios) |[wiggisser](https://github.com/wiggisser) |[kfatehi](https://github.com/kfatehi) |
|
||||
|
||||
[<img alt="imsnif" src="https://avatars3.githubusercontent.com/u/795598?v=4&s=117" width="117">](https://github.com/imsnif) |[<img alt="denisbabineau" src="https://avatars2.githubusercontent.com/u/12616025?v=4&s=117" width="117">](https://github.com/denisbabineau) |[<img alt="HCanber" src="https://avatars2.githubusercontent.com/u/800302?v=4&s=117" width="117">](https://github.com/HCanber) |[<img alt="jgoz" src="https://avatars2.githubusercontent.com/u/132233?v=4&s=117" width="117">](https://github.com/jgoz) |[<img alt="josephg" src="https://avatars1.githubusercontent.com/u/47413?v=4&s=117" width="117">](https://github.com/josephg) |
|
||||
:---: |:---: |:---: |:---: |:---: |
|
||||
[imsnif](https://github.com/imsnif) |[denisbabineau](https://github.com/denisbabineau) |[HCanber](https://github.com/HCanber) |[jgoz](https://github.com/jgoz) |[josephg](https://github.com/josephg) |
|
||||
|
||||
[<img alt="kba" src="https://avatars0.githubusercontent.com/u/273367?v=4&s=117" width="117">](https://github.com/kba) |[<img alt="aledbf" src="https://avatars2.githubusercontent.com/u/161571?v=4&s=117" width="117">](https://github.com/aledbf) |[<img alt="drubin" src="https://avatars0.githubusercontent.com/u/237513?v=4&s=117" width="117">](https://github.com/drubin) |[<img alt="plitex" src="https://avatars3.githubusercontent.com/u/2946823?v=4&s=117" width="117">](https://github.com/plitex) |[<img alt="nedelenbos" src="https://avatars2.githubusercontent.com/u/6542243?v=4&s=117" width="117">](https://github.com/nedelenbos) |
|
||||
:---: |:---: |:---: |:---: |:---: |
|
||||
[kba](https://github.com/kba) |[aledbf](https://github.com/aledbf) |[drubin](https://github.com/drubin) |[plitex](https://github.com/plitex) |[nedelenbos](https://github.com/nedelenbos) |
|
||||
|
||||
[<img alt="mysiar" src="https://avatars3.githubusercontent.com/u/13708162?v=4&s=117" width="117">](https://github.com/mysiar) |[<img alt="bufferoverflow" src="https://avatars2.githubusercontent.com/u/378909?v=4&s=117" width="117">](https://github.com/bufferoverflow) |[<img alt="osher" src="https://avatars0.githubusercontent.com/u/803101?v=4&s=117" width="117">](https://github.com/osher) |[<img alt="danielo515" src="https://avatars2.githubusercontent.com/u/2270425?v=4&s=117" width="117">](https://github.com/danielo515) |[<img alt="marnel" src="https://avatars3.githubusercontent.com/u/3189424?v=4&s=117" width="117">](https://github.com/marnel) |
|
||||
:---: |:---: |:---: |:---: |:---: |
|
||||
[mysiar](https://github.com/mysiar) |[bufferoverflow](https://github.com/bufferoverflow) |[osher](https://github.com/osher) |[danielo515](https://github.com/danielo515) |[marnel](https://github.com/marnel) |
|
||||
|
||||
[<img alt="aszmyd" src="https://avatars2.githubusercontent.com/u/3050805?v=4&s=117" width="117">](https://github.com/aszmyd) |[<img alt="estliberitas" src="https://avatars2.githubusercontent.com/u/568962?v=4&s=117" width="117">](https://github.com/estliberitas) |[<img alt="Alexandre-io" src="https://avatars0.githubusercontent.com/u/8135542?v=4&s=117" width="117">](https://github.com/Alexandre-io) |[<img alt="amirmohsen" src="https://avatars1.githubusercontent.com/u/7075106?v=4&s=117" width="117">](https://github.com/amirmohsen) |[<img alt="BarthV" src="https://avatars3.githubusercontent.com/u/1901955?v=4&s=117" width="117">](https://github.com/BarthV) |
|
||||
:---: |:---: |:---: |:---: |:---: |
|
||||
[aszmyd](https://github.com/aszmyd) |[estliberitas](https://github.com/estliberitas) |[Alexandre-io](https://github.com/Alexandre-io) |[amirmohsen](https://github.com/amirmohsen) |[BarthV](https://github.com/BarthV) |
|
||||
|
||||
[<img alt="BogdanAlexandru" src="https://avatars2.githubusercontent.com/u/5050074?v=4&s=117" width="117">](https://github.com/BogdanAlexandru) |[<img alt="iambrandonn" src="https://avatars2.githubusercontent.com/u/1644549?v=4&s=117" width="117">](https://github.com/iambrandonn) |[<img alt="robi-wan" src="https://avatars3.githubusercontent.com/u/30210?v=4&s=117" width="117">](https://github.com/robi-wan) |[<img alt="crohrer" src="https://avatars3.githubusercontent.com/u/1255222?v=4&s=117" width="117">](https://github.com/crohrer) |[<img alt="psychocode" src="https://avatars3.githubusercontent.com/u/4641709?v=4&s=117" width="117">](https://github.com/psychocode) |
|
||||
:---: |:---: |:---: |:---: |:---: |
|
||||
[BogdanAlexandru](https://github.com/BogdanAlexandru) |[iambrandonn](https://github.com/iambrandonn) |[robi-wan](https://github.com/robi-wan) |[crohrer](https://github.com/crohrer) |[psychocode](https://github.com/psychocode) |
|
||||
|
||||
[<img alt="conorhastings" src="https://avatars2.githubusercontent.com/u/8263298?v=4&s=117" width="117">](https://github.com/conorhastings) |[<img alt="coreyjewett" src="https://avatars3.githubusercontent.com/u/12782?v=4&s=117" width="117">](https://github.com/coreyjewett) |[<img alt="dbroadhurst" src="https://avatars1.githubusercontent.com/u/5667105?v=4&s=117" width="117">](https://github.com/dbroadhurst) |[<img alt="etiennetremel" src="https://avatars1.githubusercontent.com/u/995474?v=4&s=117" width="117">](https://github.com/etiennetremel) |[<img alt="einfallstoll" src="https://avatars3.githubusercontent.com/u/619048?v=4&s=117" width="117">](https://github.com/einfallstoll) |
|
||||
:---: |:---: |:---: |:---: |:---: |
|
||||
[conorhastings](https://github.com/conorhastings) |[coreyjewett](https://github.com/coreyjewett) |[dbroadhurst](https://github.com/dbroadhurst) |[etiennetremel](https://github.com/etiennetremel) |[einfallstoll](https://github.com/einfallstoll) |
|
||||
|
||||
[<img alt="gempain" src="https://avatars2.githubusercontent.com/u/13135149?v=4&s=117" width="117">](https://github.com/gempain) |[<img alt="lbguilherme" src="https://avatars0.githubusercontent.com/u/546954?v=4&s=117" width="117">](https://github.com/lbguilherme) |[<img alt="gecruz" src="https://avatars1.githubusercontent.com/u/29457476?v=4&s=117" width="117">](https://github.com/gecruz) |[<img alt="idangozlan" src="https://avatars3.githubusercontent.com/u/1991021?v=4&s=117" width="117">](https://github.com/idangozlan) |[<img alt="jrussellsmyth" src="https://avatars3.githubusercontent.com/u/2998207?v=4&s=117" width="117">](https://github.com/jrussellsmyth) |
|
||||
:---: |:---: |:---: |:---: |:---: |
|
||||
[gempain](https://github.com/gempain) |[lbguilherme](https://github.com/lbguilherme) |[gecruz](https://github.com/gecruz) |[idangozlan](https://github.com/idangozlan) |[jrussellsmyth](https://github.com/jrussellsmyth) |
|
||||
|
||||
[<img alt="jirutka" src="https://avatars1.githubusercontent.com/u/949228?v=4&s=117" width="117">](https://github.com/jirutka) |[<img alt="kingjan1999" src="https://avatars3.githubusercontent.com/u/3208269?v=4&s=117" width="117">](https://github.com/kingjan1999) |[<img alt="vStone" src="https://avatars2.githubusercontent.com/u/356719?v=4&s=117" width="117">](https://github.com/vStone) |[<img alt="zaventh" src="https://avatars1.githubusercontent.com/u/669283?v=4&s=117" width="117">](https://github.com/zaventh) |[<img alt="jeremymoritz" src="https://avatars3.githubusercontent.com/u/2779583?v=4&s=117" width="117">](https://github.com/jeremymoritz) |
|
||||
:---: |:---: |:---: |:---: |:---: |
|
||||
[jirutka](https://github.com/jirutka) |[kingjan1999](https://github.com/kingjan1999) |[vStone](https://github.com/vStone) |[zaventh](https://github.com/zaventh) |[jeremymoritz](https://github.com/jeremymoritz) |
|
||||
|
||||
[<img alt="jondlm" src="https://avatars2.githubusercontent.com/u/3290587?v=4&s=117" width="117">](https://github.com/jondlm) |[<img alt="speier" src="https://avatars3.githubusercontent.com/u/415836?v=4&s=117" width="117">](https://github.com/speier) |[<img alt="kodypeterson" src="https://avatars1.githubusercontent.com/u/1934708?v=4&s=117" width="117">](https://github.com/kodypeterson) |[<img alt="mrblackus" src="https://avatars3.githubusercontent.com/u/2353980?v=4&s=117" width="117">](https://github.com/mrblackus) |[<img alt="metaa" src="https://avatars3.githubusercontent.com/u/5056880?v=4&s=117" width="117">](https://github.com/metaa) |
|
||||
:---: |:---: |:---: |:---: |:---: |
|
||||
[jondlm](https://github.com/jondlm) |[speier](https://github.com/speier) |[kodypeterson](https://github.com/kodypeterson) |[mrblackus](https://github.com/mrblackus) |[metaa](https://github.com/metaa) |
|
||||
|
||||
[<img alt="bajtos" src="https://avatars1.githubusercontent.com/u/1140553?v=4&s=117" width="117">](https://github.com/bajtos) |[<img alt="okv" src="https://avatars3.githubusercontent.com/u/465522?v=4&s=117" width="117">](https://github.com/okv) |[<img alt="Vrtak-CZ" src="https://avatars1.githubusercontent.com/u/112567?v=4&s=117" width="117">](https://github.com/Vrtak-CZ) |[<img alt="rafacesar" src="https://avatars3.githubusercontent.com/u/71136?v=4&s=117" width="117">](https://github.com/rafacesar) |[<img alt="rbpinheiro" src="https://avatars2.githubusercontent.com/u/1257483?v=4&s=117" width="117">](https://github.com/rbpinheiro) |
|
||||
:---: |:---: |:---: |:---: |:---: |
|
||||
[bajtos](https://github.com/bajtos) |[okv](https://github.com/okv) |[Vrtak-CZ](https://github.com/Vrtak-CZ) |[rafacesar](https://github.com/rafacesar) |[rbpinheiro](https://github.com/rbpinheiro) |
|
||||
|
||||
[<img alt="r3wald" src="https://avatars3.githubusercontent.com/u/190202?v=4&s=117" width="117">](https://github.com/r3wald) |[<img alt="robertgroh" src="https://avatars3.githubusercontent.com/u/5773739?v=4&s=117" width="117">](https://github.com/robertgroh) |[<img alt="prssn" src="https://avatars1.githubusercontent.com/u/951218?v=4&s=117" width="117">](https://github.com/prssn) |[<img alt="RodrigoBalest" src="https://avatars0.githubusercontent.com/u/4810463?v=4&s=117" width="117">](https://github.com/RodrigoBalest) |[<img alt="RomainLK" src="https://avatars3.githubusercontent.com/u/1440514?v=4&s=117" width="117">](https://github.com/RomainLK) |
|
||||
:---: |:---: |:---: |:---: |:---: |
|
||||
[r3wald](https://github.com/r3wald) |[robertgroh](https://github.com/robertgroh) |[prssn](https://github.com/prssn) |[RodrigoBalest](https://github.com/RodrigoBalest) |[RomainLK](https://github.com/RomainLK) |
|
||||
|
||||
[<img alt="rmg" src="https://avatars2.githubusercontent.com/u/17978?v=4&s=117" width="117">](https://github.com/rmg) |[<img alt="samcday" src="https://avatars0.githubusercontent.com/u/531550?v=4&s=117" width="117">](https://github.com/samcday) |[<img alt="tarun1793" src="https://avatars0.githubusercontent.com/u/1783440?v=4&s=117" width="117">](https://github.com/tarun1793) |[<img alt="tcort" src="https://avatars3.githubusercontent.com/u/216720?v=4&s=117" width="117">](https://github.com/tcort) |[<img alt="grrowl" src="https://avatars2.githubusercontent.com/u/907140?v=4&s=117" width="117">](https://github.com/grrowl) |
|
||||
:---: |:---: |:---: |:---: |:---: |
|
||||
[rmg](https://github.com/rmg) |[samcday](https://github.com/samcday) |[tarun1793](https://github.com/tarun1793) |[tcort](https://github.com/tcort) |[grrowl](https://github.com/grrowl) |
|
||||
|
||||
[<img alt="tlvince" src="https://avatars2.githubusercontent.com/u/323761?v=4&s=117" width="117">](https://github.com/tlvince) |[<img alt="lordvlad" src="https://avatars2.githubusercontent.com/u/1217769?v=4&s=117" width="117">](https://github.com/lordvlad) |[<img alt="wpasternak" src="https://avatars3.githubusercontent.com/u/958449?v=4&s=117" width="117">](https://github.com/wpasternak) |[<img alt="yannickcr" src="https://avatars2.githubusercontent.com/u/13209?v=4&s=117" width="117">](https://github.com/yannickcr) |[<img alt="yannickglt" src="https://avatars0.githubusercontent.com/u/1006426?v=4&s=117" width="117">](https://github.com/yannickglt) |
|
||||
:---: |:---: |:---: |:---: |:---: |
|
||||
[tlvince](https://github.com/tlvince) |[lordvlad](https://github.com/lordvlad) |[wpasternak](https://github.com/wpasternak) |[yannickcr](https://github.com/yannickcr) |[yannickglt](https://github.com/yannickglt) |
|
||||
|
||||
[<img alt="silkentrance" src="https://avatars3.githubusercontent.com/u/6068824?v=4&s=117" width="117">](https://github.com/silkentrance) |[<img alt="jjaakola" src="https://avatars3.githubusercontent.com/u/3587824?v=4&s=117" width="117">](https://github.com/jjaakola) |[<img alt="maxlaverse" src="https://avatars0.githubusercontent.com/u/3045354?v=4&s=117" width="117">](https://github.com/maxlaverse) |[<img alt="ChadKillingsworth" src="https://avatars2.githubusercontent.com/u/1247639?v=4&s=117" width="117">](https://github.com/ChadKillingsworth) |
|
||||
:---: |:---: |:---: |:---: |
|
||||
[silkentrance](https://github.com/silkentrance) |[jjaakola](https://github.com/jjaakola) |[maxlaverse](https://github.com/maxlaverse) |[ChadKillingsworth](https://github.com/ChadKillingsworth) |
|
||||
|
||||
|
||||
|
|
|
@ -3,12 +3,20 @@ id: dev-plugins
|
|||
title: "Developing Plugins"
|
||||
---
|
||||
|
||||
There are many ways to extend `verdaccio`, currently we only support `authentication plugins`
|
||||
There are many ways to extend `verdaccio`, currently we support `authentication plugins`, `middleware plugins` (since `v2.7.0`) and `storage plugins` since (`v3.x`).
|
||||
|
||||
## Authentication Plugins
|
||||
|
||||
This section will describe how it looks like a Verdaccio plugin in a ES5 way. Basically we have to return an object with a single method called `authenticate` that will recieve 3 arguments (`user, password, callback`). Once the authentication has been executed there is 2 options to give a response to `verdaccio`.
|
||||
|
||||
### API
|
||||
|
||||
```js
|
||||
function authenticate (user, password, callback) {
|
||||
...more stuff
|
||||
}
|
||||
```
|
||||
|
||||
##### OnError
|
||||
|
||||
Either something bad happened or auth was unsuccessful.
|
||||
|
@ -61,10 +69,79 @@ Auth.prototype.authenticate = function (user, password, callback) {
|
|||
module.exports = Auth;
|
||||
```
|
||||
|
||||
## Storage Plugins
|
||||
And the setup
|
||||
|
||||
// in progress
|
||||
```yaml
|
||||
auth:
|
||||
htpasswd:
|
||||
file: ./htpasswd
|
||||
```
|
||||
Where `htpasswd` is the sufix of the plugin name. eg: `verdaccio-htpasswd` and the rest of the body would be the plugin configuration params.
|
||||
|
||||
## Middleware Integration
|
||||
|
||||
// in progress
|
||||
Middleware plugins have the capability to modify the API layer, either adding new endpoints or intercepting requests. A pretty good example
|
||||
of middleware plugin is the (sinopia-github-oauth)[https://github.com/soundtrackyourbrand/sinopia-github-oauth]) compatible with `verdaccio`.
|
||||
|
||||
### API
|
||||
|
||||
```js
|
||||
function register_middlewares(expressApp, auth, storage) {
|
||||
...more stuff
|
||||
}
|
||||
```
|
||||
|
||||
To register a middleware we need an object with a single method called `register_middlewares` that will recieve 3 arguments (`expressApp, auth, storage`).
|
||||
*Auth* is the authentification instance and *storage* is also the main Storage instance that will give you have access to all to the storage actions.
|
||||
|
||||
|
||||
## Storage Plugins
|
||||
|
||||
Since `verdaccio@3.x` we also can plug a custom storage.
|
||||
|
||||
### API
|
||||
|
||||
The storage API is a bit more complex, you will need to create a class that return a `ILocalData` implementation. Please see details bellow.
|
||||
|
||||
```js
|
||||
|
||||
class LocalDatabase<ILocalData>{
|
||||
constructor(config: Config, logger: Logger): ILocalData;
|
||||
}
|
||||
|
||||
interface ILocalData {
|
||||
add(name: string): SyncReturn;
|
||||
remove(name: string): SyncReturn;
|
||||
get(): StorageList;
|
||||
getPackageStorage(packageInfo: string): IPackageStorage;
|
||||
sync(): ?SyncReturn;
|
||||
}
|
||||
|
||||
interface ILocalPackageManager {
|
||||
writeTarball(name: string): IUploadTarball;
|
||||
readTarball(name: string): IReadTarball;
|
||||
readPackage(fileName: string, callback: Callback): void;
|
||||
createPackage(name: string, value: any, cb: Callback): void;
|
||||
deletePackage(fileName: string, callback: Callback): void;
|
||||
removePackage(callback: Callback): void;
|
||||
updatePackage(pkgFileName: string,
|
||||
updateHandler: Callback,
|
||||
onWrite: Callback,
|
||||
transformPackage: Function,
|
||||
onEnd: Callback): void;
|
||||
savePackage(fileName: string, json: Package, callback: Callback): void;
|
||||
}
|
||||
|
||||
interface IUploadTarball extends stream$PassThrough {
|
||||
abort(): void;
|
||||
done(): void;
|
||||
}
|
||||
|
||||
interface IReadTarball extends stream$PassThrough {
|
||||
abort(): void;
|
||||
done(): void;
|
||||
}
|
||||
```
|
||||
|
||||
> This API still is experimental and might change next minor versions. The default [LocalStorage plugin](https://github.com/verdaccio/local-storage) it comes built-in in `verdaccio` and it is being
|
||||
loaded if any storage plugin has been defined.
|
||||
|
|
|
@ -5,7 +5,9 @@ title: Docker
|
|||
|
||||
To pull the latest pre-built [docker image](https://hub.docker.com/r/verdaccio/verdaccio/):
|
||||
|
||||
`docker pull verdaccio/verdaccio`
|
||||
```bash
|
||||
docker pull verdaccio/verdaccio
|
||||
```
|
||||
|
||||
## Tagged Versions
|
||||
|
||||
|
@ -39,6 +41,8 @@ The Canary version (master branch) is tagged as `alpha`
|
|||
docker pull verdaccio/verdaccio:alpha
|
||||
```
|
||||
|
||||
> If you are interested on a list of tags, [please visit the Docker Hub website](https://hub.docker.com/r/verdaccio/verdaccio/tags/).
|
||||
|
||||
## Running verdaccio using Docker
|
||||
|
||||
To run the docker container:
|
||||
|
|
|
@ -8,13 +8,14 @@ Verdaccio is a multiplatform web application, to install you need at least some
|
|||
#### Prerequisites
|
||||
|
||||
1. Node higher than
|
||||
- For version *2.x* we support from **4.6.1**
|
||||
- For version *3.x* we support as minimum **6.12.0**
|
||||
2. npm *>=3.x* or yarn
|
||||
- For version `verdaccio@2.x` we support from Node `v4.6.1`.
|
||||
- For version `verdaccio@3.x` we support as minimum Node `6.12.0`
|
||||
2. npm `>=3.x` or `yarn`
|
||||
3. The web interface support browsers `Chrome, Firefox, Edge, and IE9`
|
||||
|
||||
## Installing the CLI
|
||||
|
||||
`Verdaccio` must be install globaly using any of the most modern
|
||||
`verdaccio` must be install globaly using any of the most modern
|
||||
|
||||
Using `npm`
|
||||
|
||||
|
@ -27,8 +28,6 @@ or using `yarn`
|
|||
yarn global add verdaccio
|
||||
```
|
||||
|
||||
> Warning: Verdaccio current is not support PM2's cluster mode, run it with cluster mode may cause unknown behavior
|
||||
|
||||
## Basic Usage
|
||||
|
||||
Once has been installed you only need to execute the CLI command.
|
||||
|
|
|
@ -3,7 +3,7 @@ id: node-api
|
|||
title: "Node API"
|
||||
---
|
||||
|
||||
Verdaccio can be invoqued programmatically.
|
||||
Verdaccio can be invoqued programmatically. The node API was introduced after version `verdaccio@3.0.0-alpha.10`.
|
||||
|
||||
## Usage
|
||||
|
||||
|
|
|
@ -17,6 +17,7 @@ Repository | Usage | Stack
|
|||
[https://github.com/verdaccio/puppet-verdaccio](https://github.com/verdaccio/puppet-verdaccio) | Puppet support | Puppet
|
||||
[https://github.com/verdaccio/ansible-verdaccio](https://github.com/verdaccio/ansible-verdaccio) | Ansible support | Ansible
|
||||
[https://github.com/verdaccio/verdaccio-cookbook](https://github.com/verdaccio/verdaccio-cookbook) | Chef support | Chef
|
||||
[https://github.com/chainlink/charts/tree/master/stable/verdaccio](https://github.com/chainlink/charts/tree/master/stable/verdaccio) | Kubernetes support | Kubernetes
|
||||
|
||||
## Experimental Repos
|
||||
|
||||
|
@ -24,7 +25,6 @@ The following repositories aims to be part of the future infraestructure of `ver
|
|||
|
||||
Repository | Usage | Stack
|
||||
--- | ---| ---|
|
||||
[https://github.com/verdaccio/verdaccio-plugin-auth-htpasswd](https://github.com/verdaccio/verdaccio-plugin-auth-htpasswd) | Default authentification plugin based on Babel | ES6, Babel, Flow
|
||||
[https://github.com/verdaccio/verdaccio-memory](https://github.com/verdaccio/verdaccio-memory) | An experimental storage in memory | ES6, Babel, Flow
|
||||
[https://github.com/verdaccio/generator-verdaccio-plugin](https://github.com/verdaccio/generator-verdaccio-plugin) | Yeoman generators for future verdaccio plugins | ES6, Babel, Yeoman
|
||||
[https://github.com/verdaccio/blog](https://github.com/verdaccio/blog) | Any article related with verdaccio | Markdown
|
||||
|
||||
|
|
179
docs/test.md
|
@ -7,7 +7,7 @@ All tests are split in three folders:
|
|||
|
||||
- `test/unit` - Tests that cover functions that transform data in an non-trivial way. These tests simply `require()` a few files and run code in there, so they are very fast.
|
||||
- `test/functional` - Tests that launch a verdaccio instance and perform a series of requests to it over http. They are slower than unit tests.
|
||||
- `test/integration` - Tests that launch a verdaccio instance and do requests to it using npm. They are really slow and can hit a real npm registry. **This actually has not been tested or
|
||||
- `test/integration` - Tests that launch a verdaccio instance and do requests to it using npm. They are really slow and can hit a real npm registry. **unmaintained test**
|
||||
|
||||
Unit and functional tests are executed automatically by running `npm test` from the project's root directory. Integration tests are supposed to be executed manually from time to time.
|
||||
|
||||
|
@ -25,22 +25,29 @@ yarn run test
|
|||
That will trigger only two first groups of test, unit and functional.
|
||||
|
||||
### Using test/unit
|
||||
The following is just an example how a unit test should looks like. Basically follow the `mocha` standard. Try to describe what exactly does the unit test in a single sentence in the header of the `it` section.
|
||||
The following is just an example how a unit test should looks like. Basically follow the `jest` standard.
|
||||
|
||||
Try to describe what exactly does the unit test in a single sentence in the header of the `test` section.
|
||||
|
||||
```javacript
|
||||
'use strict';
|
||||
const verdaccio = require('../../src/api/index');
|
||||
const config = require('./partials/config');
|
||||
|
||||
let assert = require('assert');
|
||||
let parseInterval = require('../../src/lib/utils').parseInterval;
|
||||
describe('basic system test', () => {
|
||||
|
||||
describe('Parse interval', function() {
|
||||
before(function(done) {
|
||||
..... some magic stuff before the show
|
||||
});
|
||||
beforeAll(function(done) {
|
||||
// something important
|
||||
});
|
||||
|
||||
it('server should respond on /', function(done) {
|
||||
... this is an async test
|
||||
});});
|
||||
afterAll((done) => {
|
||||
// undo something important
|
||||
});
|
||||
|
||||
test('server should respond on /', done => {
|
||||
// your test
|
||||
done();
|
||||
});
|
||||
});
|
||||
```
|
||||
|
||||
### Using test/functional
|
||||
|
@ -50,111 +57,85 @@ Funtional testing in verdaccio has a bit more of complextity that needs a deep e
|
|||
All starts in the `index.js` file. Let's dive in into it.
|
||||
|
||||
```javascript
|
||||
// create 3 server instances
|
||||
require('./lib/startup');
|
||||
...
|
||||
// we create 3 server instances
|
||||
const config1 = new VerdaccioConfig(
|
||||
'./store/test-storage',
|
||||
'./store/config-1.yaml',
|
||||
'http://localhost:55551/');
|
||||
const config2 = new VerdaccioConfig(
|
||||
'./store/test-storage2',
|
||||
'./store/config-2.yaml',
|
||||
'http://localhost:55552/');
|
||||
const config3 = new VerdaccioConfig(
|
||||
'./store/test-storage3',
|
||||
'./store/config-3.yaml',
|
||||
'http://localhost:55553/');
|
||||
const server1: IServerBridge = new Server(config1.domainPath);
|
||||
const server2: IServerBridge = new Server(config2.domainPath);
|
||||
const server3: IServerBridge = new Server(config3.domainPath);
|
||||
const process1: IServerProcess = new VerdaccioProcess(config1, server1, SILENCE_LOG);
|
||||
const process2: IServerProcess = new VerdaccioProcess(config2, server2, SILENCE_LOG);
|
||||
const process3: IServerProcess = new VerdaccioProcess(config3, server3, SILENCE_LOG);
|
||||
const express: any = new ExpressServer();
|
||||
...
|
||||
|
||||
describe('functional test verdaccio', function() {
|
||||
// recover the server instances
|
||||
const server = process.server;
|
||||
const server2 = process.server2;
|
||||
const server3 = process.server3;
|
||||
|
||||
// On start initialise 3 verdaccio servers
|
||||
before(function(done) {
|
||||
Promise.all([
|
||||
require('./lib/startup').start('./store/test-storage', '/store/config-1.yaml'),
|
||||
require('./lib/startup').start('./store/test-storage2', '/store/config-2.yaml'),
|
||||
require('./lib/startup').start('./store/test-storage3', '/store/config-3.yaml'),
|
||||
]).then(() => {
|
||||
done();
|
||||
}).catch(function(error) {
|
||||
console.error("error on start servers", error);
|
||||
// we check whether all instances has been started, since run in independent processes
|
||||
beforeAll((done) => {
|
||||
Promise.all([
|
||||
process1.init(),
|
||||
process2.init(),
|
||||
process3.init()]).then((forks) => {
|
||||
_.map(forks, (fork) => {
|
||||
processRunning.push(fork[0]);
|
||||
});
|
||||
express.start(EXPRESS_PORT).then((app) =>{
|
||||
done();
|
||||
}, (err) => {
|
||||
done(err);
|
||||
});
|
||||
}).catch((error) => {
|
||||
done(error);
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
before(function() {
|
||||
return Promise.all([server, server2, server3].map(function(server) {
|
||||
// save a lsof -p output in order to compare on finish on finish all test
|
||||
}));
|
||||
});
|
||||
|
||||
..........
|
||||
// here is the unique line you should add, the new functional test.
|
||||
require('./my-functional-test.js')();
|
||||
|
||||
// On finish kill all server
|
||||
after(function(done) {
|
||||
Promise.all([check(server), check(server2), check(server3)]).then(function() {
|
||||
done();
|
||||
}, (reason) => {
|
||||
assert.equal(reason, null);
|
||||
done();
|
||||
// after finish all, we ensure are been stoped
|
||||
afterAll(() => {
|
||||
_.map(processRunning, (fork) => {
|
||||
fork.stop();
|
||||
});
|
||||
express.server.close();
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
```
|
||||
|
||||
Perhaps this is not he best approach, but, it's how works right now. So, you just learnt how the bootstrap works and how to add a new group of functional tests.
|
||||
|
||||
#### The lib/server.js
|
||||
|
||||
The server class is just a wrapper that simulates a `npm` client and provides a simple API for the funtional test.
|
||||
|
||||
As we mention in the previous section, we are creating 3 process servers that are accessible in each process as `process.server;`, `process.server2;` and ``process.server3;`.
|
||||
|
||||
Using such reference you will be able to send request to any of the 3 instance running.
|
||||
|
||||
#### The lib/startup.js
|
||||
|
||||
The startup file is the responsable to create the 3 verdaccio instances and inject them to the `process.x` global variable.
|
||||
|
||||
#### The lib/request.js
|
||||
|
||||
This module holds a `PromiseAssert` which extends from `Promise` adding methods to handle all request from `lib/server.js`.
|
||||
|
||||
### Usage
|
||||
|
||||
Here we are gonna describe how it looks like an usual functional test, check inline for more detail information.
|
||||
|
||||
#### The lib/server.js
|
||||
|
||||
The server class is just a wrapper that simulates a `npm` client and provides a simple API for the funtional test.
|
||||
|
||||
As we mention in the previous section, we are creating 3 process servers that are accessible in each process as `server1`, `server2` and ``server3`.
|
||||
|
||||
Using such reference you will be able to send request to any of the 3 instance running.
|
||||
|
||||
|
||||
```javascript
|
||||
'use strict';
|
||||
|
||||
module.exports = function() {
|
||||
// you can access the 3 instance through process global variables
|
||||
const server = process.server;
|
||||
const server2 = process.server2;
|
||||
|
||||
describe('my-functional-group-test', function() {
|
||||
before(function() {
|
||||
// create a raw emtpy package
|
||||
const pkg = require('./fixtures/package')('new-package');
|
||||
return server.putPackage('new-package', pkg)
|
||||
// check whether was uploaded correctly
|
||||
.status(201)
|
||||
// check whether body response is ok
|
||||
.body_ok(/created new package/);
|
||||
});
|
||||
|
||||
// since before are not registred, we use emtpy it to display before putPackage was success
|
||||
it('creating new package / srv1', function() {});
|
||||
|
||||
it('should do something else here ..... ', function() {
|
||||
// this should fails since fakeVersion does not exist
|
||||
// note we use server2 because is an uplink of server 1
|
||||
return server2.getTarball('new-package', 'fakeVersion')
|
||||
.status(404)
|
||||
.body_error(/no such file/);
|
||||
});
|
||||
export default function(server) {
|
||||
// we recieve any server instance via arguments
|
||||
test('add tag - 404', () => {
|
||||
// we interact with the server instance.
|
||||
return server.addTag('testpkg-tag', 'tagtagtag', '0.0.1').status(404).body_error(/no such package/);
|
||||
});
|
||||
};
|
||||
});
|
||||
```
|
||||
|
||||
### Test/integration
|
||||
|
||||
These section never has been used, but we are looking for help to make it run properly. All new ideas are very welcome.
|
||||
These section never has been used, but we are looking for help to make it run properly. **All new ideas are very welcome.**
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -5,6 +5,8 @@ title: "Uplinks"
|
|||
|
||||
An *uplink* is a link with an external registry that provides acccess to external packages.
|
||||
|
||||
![Uplinks](/img/uplinks.png)
|
||||
|
||||
### Usage
|
||||
|
||||
```yaml
|
||||
|
@ -26,7 +28,7 @@ You can define mutiple uplinks and each of them must have an unique name (key).
|
|||
Property | Type | Required | Example | Support | Description | Default
|
||||
--- | --- | --- | --- | --- | --- | ---
|
||||
url | string | Yes | https://registry.npmjs.org/ | all | The registry url | npmjs
|
||||
ca | string | No | ~./ssl/client.crt' | all | SSL path certificate |
|
||||
ca | string | No | ~./ssl/client.crt' | all | SSL path certificate | No default
|
||||
timeout | string | No | 100ms | all | set new timeout for the request | 30s
|
||||
maxage | string | No |10m | all | limit maximun failure request | 2m
|
||||
fail_timeout | string | No |10m | all | defines max time when a request becomes a failure | 5m
|
||||
|
@ -38,7 +40,7 @@ headers | list | No | authorization: "Basic YourBase64EncodedCredentials==" | al
|
|||
|
||||
### You Must know
|
||||
|
||||
* Uplinks must be registries compatible with the `npm` endpoints. Eg: *verdaccio*, *sinopia@1.4.0*, *npmjs registry*, *yarn registry* and more.
|
||||
* Setting `cache` to false will help to save space in your hard drive.
|
||||
* Uplinks must be registries compatible with the `npm` endpoints. Eg: *verdaccio*, `sinopia@1.4.0`, *npmjs registry*, *yarn registry*, *JFrog*, *Nexus* and more.
|
||||
* Setting `cache` to false will help to save space in your hard drive. This will avoid store `tarballs` but [it will keep metadata in folders](https://github.com/verdaccio/verdaccio/issues/391).
|
||||
* Exceed with multiple uplinks might slow down the lookup of your packages due for each request a npm client does, verdaccio does 1 call for each uplink.
|
||||
* The (timeout, maxage and fail_timeout) format follow the [NGINX measurement units](http://nginx.org/en/docs/syntax.html)
|
||||
|
|
|
@ -3,6 +3,8 @@ id: webui
|
|||
title: "Web User Interface"
|
||||
---
|
||||
|
||||
<p align="center"><img src="https://firebasestorage.googleapis.com/v0/b/jotadeveloper-website.appspot.com/o/verdaccio_long_video2.gif?alt=media&token=4d20cad1-f700-4803-be14-4b641c651b41"></p>
|
||||
|
||||
Verdaccio has a web user interface to display only the private packges and can be customisable.
|
||||
|
||||
```yaml
|
||||
|
|
35
docs/what-is-verdaccio.md
Normal file
|
@ -0,0 +1,35 @@
|
|||
---
|
||||
id: what-is-verdaccio
|
||||
title: "What is Verdaccio?"
|
||||
---
|
||||
|
||||
## In a nutshell
|
||||
|
||||
* It's a web app based on Node.js
|
||||
* It's a private npm registry
|
||||
* It's a local network proxy
|
||||
* It's a Pluggable application
|
||||
* It's a fairly easy install and use
|
||||
* We offer Docker and Kubernetes support
|
||||
* It is 100% compatible with yarn, npm and pnpm
|
||||
* It was born based on `sinopia@1.4.0` fork and *backward compatible*
|
||||
* Verdaccio means **A green color popular in late medieval Italy for fresco painting**.
|
||||
|
||||
## What's a registry
|
||||
|
||||
* A repository for packages that implements the CommonJS Compliant Package Registry specification for reading package info
|
||||
* Store npm packages
|
||||
* Provide an API compatible with npm clients
|
||||
* Semantic Versioning (semver) compatible
|
||||
|
||||
```bash
|
||||
curl -v https://registry.npmjs.org/aaa
|
||||
|
||||
* Connected to registry.npmjs.org (151.101.12.162) port 443 (#0)
|
||||
|
||||
* Connection #0 to host registry.npmjs.org left intact
|
||||
{"_id":"aaa","_rev":"6-ad86dfc8720569871753b5bf561f2741","name":"aaa","description":"aaa...","dist-tags":{"latest":"0.0.2"},"versions":{"0.0.1":{"name":"aaa","version":"0.0.1","description":"aaa...","main":"index.js","scripts":{"test":"test.js"},"repository":{"type":"git","url":"http:/www.google.git"},"keywords":["math"],"author":{"name":"peter"},"license":"BSD","_id":"aaa@0.0.1","dist":
|
||||
{"shasum":"a04fa88ad887a70dd5429652ce23823619dfd7c3","tarball":"https://registry.npmjs.org/aaa/-/aaa-0.0.1.tgz"},"_npmVersion":"1.1.62","_npmUser":{"name":"erhu65","email":"erhu65@gmail.com"},"maintainers":[{"name":"erhu65","email":"erhu65@gmail.com"}],"directories":{}},"0.0.2":{"name":"aaa","version":"0.0.2","description":"aaa...","main":"index.js","scripts":{"test":"test.js"},"repository":{"type":"git","url":"http:/www.google.git"},"keywords":["math"],"author":{"name":"peter"},"license":"BSD","_id":"aaa@0.0.2","dist":
|
||||
{"shasum":"acd2f632b94b0f89765e75bb7b7549ce5b01caa2","tarball":"https://registry.npmjs.org/aaa/-/aaa-0.0.2.tgz"},"_npmVersion":"1.1.62","_npmUser":{"name":"erhu65","email":"erhu65@gmail.com"},"maintainers":[{"name":"erhu65","email":"erhu65@gmail.com"}],"directories":{}}},"readme":"ERROR: No README.md file found!","maintainers":[{"name":"erhu65","email":"erhu65@gmail.com"}],"timmacbook-j:verdaccio.mmacbookmacbook-j:verdaccio.master.git jpicmacbook-j:verdaccio.master.git jpicmacbookmacbookmacbookmacbookmacbook
|
||||
````
|
||||
|
|
@ -130,7 +130,8 @@
|
|||
"enterprise",
|
||||
"modules",
|
||||
"proxy",
|
||||
"server"
|
||||
"server",
|
||||
"verdaccio"
|
||||
],
|
||||
"scripts": {
|
||||
"release": "standard-version -a -s",
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
---
|
||||
title: New Version 3.0.0
|
||||
author: Juan Picado
|
||||
authorURL: http://twitter.com/jotadeveloper
|
||||
authorFBID: 1122901551
|
||||
---
|
||||
|
||||
This blog post will test file name parsing issues when periods are present.
|
|
@ -17,6 +17,7 @@
|
|||
"installation": "Installation",
|
||||
"kubernetes": "Kubernetes",
|
||||
"logger": "Logger",
|
||||
"node-api": "Node API",
|
||||
"notifications": "Notifications",
|
||||
"packages": "Package Access",
|
||||
"plugins": "Plugins",
|
||||
|
@ -29,6 +30,7 @@
|
|||
"uplinks": "Uplinks",
|
||||
"use-cases": "Use Cases",
|
||||
"webui": "Web User Interface",
|
||||
"what-is-verdaccio": "What is Verdaccio?",
|
||||
"windows": "Installing As a Windows Service",
|
||||
"Docs": "Docs",
|
||||
"Help": "Help",
|
||||
|
@ -42,7 +44,7 @@
|
|||
"Guides": "Guides"
|
||||
},
|
||||
"pages-strings": {
|
||||
"Learn more using the [documentation on this site.](/test-site/docs/en/doc1.html)|no description given": "Learn more using the [documentation on this site.](/test-site/docs/en/doc1.html)",
|
||||
"Learn more using the [documentation on this site.](/docs/en/installation.html)|no description given": "Learn more using the [documentation on this site.](/docs/en/installation.html)",
|
||||
"Browse Docs|no description given": "Browse Docs",
|
||||
"Ask questions about the documentation and project|no description given": "Ask questions about the documentation and project",
|
||||
"Join the community|no description given": "Join the community",
|
||||
|
|
|
@ -127,7 +127,7 @@ const languages = [
|
|||
tag: 'pt-PT',
|
||||
},
|
||||
{
|
||||
enabled: true,
|
||||
enabled: false,
|
||||
name: 'Português (Brasil)',
|
||||
tag: 'pt-BR',
|
||||
},
|
||||
|
|
|
@ -22,7 +22,7 @@ class Help extends React.Component {
|
|||
content: (
|
||||
<translate>
|
||||
Learn more using the [documentation on this
|
||||
site.](/test-site/docs/en/doc1.html)
|
||||
site.](/docs/en/installation.html)
|
||||
</translate>
|
||||
),
|
||||
title: <translate>Browse Docs</translate>,
|
||||
|
|
|
@ -18,16 +18,18 @@ class Help extends React.Component {
|
|||
const supportLinks = [
|
||||
{
|
||||
content:
|
||||
'Learn more using the [documentation on this site.](/test-site/docs/en/doc1.html)',
|
||||
'Learn more about Verdaccio using the [documentation on this site.](/docs/en/installation.html)',
|
||||
title: 'Browse Docs',
|
||||
},
|
||||
{
|
||||
content: 'Ask questions about the documentation and project',
|
||||
title: 'Join the community',
|
||||
content: 'You can follow and contact us on [Twitter](https://twitter.com/verdaccio_npm).',
|
||||
title: 'Twitter',
|
||||
},
|
||||
{
|
||||
content: "Find out what's new with this project",
|
||||
title: 'Stay up to date',
|
||||
content: "If the documentation is not enough help, you can try browsing into our " +
|
||||
"[Question Database](https://github.com/verdaccio/verdaccio/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3Aquestion+) " +
|
||||
"and also you can chat with the Verdaccio community in [Gitter](https://gitter.im/verdaccio/).",
|
||||
title: 'More Help?',
|
||||
},
|
||||
];
|
||||
|
||||
|
@ -38,7 +40,7 @@ class Help extends React.Component {
|
|||
<header className="postHeader">
|
||||
<h2>Need help?</h2>
|
||||
</header>
|
||||
<p>This project is maintained by a dedicated group of people.</p>
|
||||
<p>This project is maintained by the Verdaccio community.</p>
|
||||
<GridBlock contents={supportLinks} layout="threeColumn" />
|
||||
</div>
|
||||
</Container>
|
||||
|
|
|
@ -137,9 +137,9 @@ class Index extends React.Component {
|
|||
<GridBlock
|
||||
contents={[
|
||||
{
|
||||
content: '**npm** and **yarn** are part of any development workflow,' +
|
||||
content: '**npm**, **yarn** and **pnpm** are part of any development workflow,' +
|
||||
' we try to catch up with the latest updates.',
|
||||
image: siteConfig.baseUrl + 'img/verdaccio-tiny@3x.png',
|
||||
image: siteConfig.baseUrl + 'img/package_managers_grey.png',
|
||||
imageAlign: 'right',
|
||||
title: 'The most popular npm clients are supported',
|
||||
},
|
||||
|
@ -159,7 +159,7 @@ class Index extends React.Component {
|
|||
'```bash\n' +
|
||||
'helm install --name npm stable/verdaccio\n' +
|
||||
'```\n',
|
||||
image: siteConfig.baseUrl + 'img/verdaccio-tiny@3x.png',
|
||||
image: siteConfig.baseUrl + 'img/devops_support_grey.png',
|
||||
imageAlign: 'left',
|
||||
title: 'Making the DevOps work easy',
|
||||
},
|
||||
|
|
|
@ -31,9 +31,9 @@ class Users extends React.Component {
|
|||
<p>This project is used by many folks</p>
|
||||
</div>
|
||||
<div className="logos">{showcase}</div>
|
||||
<p>Are you using this project?</p>
|
||||
<p>Are you using this project? Do not be shy and add your company/project logo.</p>
|
||||
<a
|
||||
href="https://github.com/facebook/docusaurus/edit/master/website/siteConfig.js"
|
||||
href="https://github.com/verdaccio/verdaccio/edit/master/website/siteConfig.js"
|
||||
className="button">
|
||||
Add your company
|
||||
</a>
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"docs": {
|
||||
"Introduction": [
|
||||
"what-is-verdaccio",
|
||||
"installation",
|
||||
"cli"
|
||||
],
|
||||
|
|
|
@ -13,7 +13,7 @@ const siteConfig = {
|
|||
tagline: 'A lightweight private npm proxy registry',
|
||||
url: 'http://www.verdaccio.org' /* your website url */,
|
||||
organizationName: 'verdaccio',
|
||||
baseUrl: '/verdaccio/' /* base url for your project */,
|
||||
baseUrl: '/' /* base url for your project */,
|
||||
projectName: 'verdaccio',
|
||||
headerLinks: [
|
||||
{doc: 'installation', label: 'Docs'},
|
||||
|
@ -24,7 +24,7 @@ const siteConfig = {
|
|||
/* path to images for header/footer */
|
||||
headerIcon: 'img/verdaccio-tiny.png',
|
||||
footerIcon: 'img/verdaccio-blackwhite.png',
|
||||
favicon: 'img/favicon.png',
|
||||
favicon: 'img/favicon.ico',
|
||||
/* colors for website */
|
||||
colors: {
|
||||
primaryColor: '#4B5E40',
|
||||
|
|
BIN
website/static/img/devops_support.png
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
website/static/img/devops_support_grey.png
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
website/static/img/favicon.ico
Normal file
After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 984 B |
BIN
website/static/img/packageManagers.png
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
website/static/img/package_managers_grey.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
website/static/img/uplinks.png
Normal file
After Width: | Height: | Size: 81 KiB |