Commit 45932a16 authored by James Tharpe's avatar James Tharpe Committed by Achilleas Pipinellis

Use NPM commands to configure

This encourages best practces & avoids errors running npm install later
parent 8e6e7fdb
...@@ -73,20 +73,20 @@ If you have 2FA enabled, you need to use a [personal access token](../../profile ...@@ -73,20 +73,20 @@ If you have 2FA enabled, you need to use a [personal access token](../../profile
### Authenticating with an OAuth token ### Authenticating with an OAuth token
To authenticate with an [OAuth token](../../../api/oauth2.md#resource-owner-password-credentials-flow) To authenticate with an [OAuth token](../../../api/oauth2.md#resource-owner-password-credentials-flow)
or [personal access token](../../profile/personal_access_tokens.md), add a corresponding section to your `.npmrc` file: or [personal access token](../../profile/personal_access_tokens.md), set your NPM configuration:
```ini ```bash
; Set URL for your scoped packages. # Set URL for your scoped packages.
; For example package with name `@foo/bar` will use this URL for download # For example package with name `@foo/bar` will use this URL for download
@foo:registry=https://gitlab.com/api/v4/packages/npm/ npm config set @foo:registry https://gitlab.com/api/v4/packages/npm/
; Add the token for the scoped packages URL. This will allow you to download # Add the token for the scoped packages URL. This will allow you to download
; `@foo/` packages from private projects. # `@foo/` packages from private projects.
//gitlab.com/api/v4/packages/npm/:_authToken=<your_token> npm config set '//gitlab.com/api/v4/projects/<your_project_id>/packages/npm/:_authToken' "<your_token>"
; Add token for uploading to the registry. Replace <your_project_id> # Add token for uploading to the registry. Replace <your_project_id>
; with the project you want your package to be uploaded to. # with the project you want your package to be uploaded to.
//gitlab.com/api/v4/projects/<your_project_id>/packages/npm/:_authToken=<your_token> npm config set '//gitlab.com/api/v4/packages/npm/:_authToken' "<your_token>"
``` ```
Replace `<your_project_id>` with your project ID which can be found on the home page Replace `<your_project_id>` with your project ID which can be found on the home page
...@@ -103,13 +103,11 @@ If you encounter an error message with [Yarn](https://yarnpkg.com/en/), see the ...@@ -103,13 +103,11 @@ If you encounter an error message with [Yarn](https://yarnpkg.com/en/), see the
### Using variables to avoid hard-coding auth token values ### Using variables to avoid hard-coding auth token values
To avoid hard-coding the `authToken` value, you may use a variables in its place. To avoid hard-coding the `authToken` value, you may use a variables in its place:
In your `.npmrc` file, you would add:
```ini ```bash
@foo:registry=https://gitlab.com/api/v4/packages/npm/ npm config set '//gitlab.com/api/v4/projects/<your_project_id>/packages/npm/:_authToken' "${NPM_TOKEN}"
//gitlab.com/api/v4/packages/npm/:_authToken=${NPM_TOKEN} npm config set '//gitlab.com/api/v4/packages/npm/:_authToken' "${NPM_TOKEN}"
//gitlab.com/api/v4/projects/<your_project_id>/packages/npm/:_authToken=${NPM_TOKEN}
``` ```
Then, you could run `npm publish` either locally or via GitLab CI/CD: Then, you could run `npm publish` either locally or via GitLab CI/CD:
...@@ -227,6 +225,14 @@ And the `.npmrc` file should look like: ...@@ -227,6 +225,14 @@ And the `.npmrc` file should look like:
@foo:registry=https://gitlab.com/api/v4/packages/npm/ @foo:registry=https://gitlab.com/api/v4/packages/npm/
``` ```
### `npm install` returns `Error: Failed to replace env in config: ${NPM_TOKEN}`
You do not need a token to run `npm install` unless your project is private (the token is only required to publish). If the `.npmrc` file was checked in with a reference to `$NPM_TOKEN`, you can remove it. If you prefer to leave the reference in, you'll need to set a value prior to running `npm install` or set the value using [GitLab environment variables](./../../../ci/variables/README.md):
```bash
NPM_TOKEN=<your_token> npm install
```
## NPM dependencies metadata ## NPM dependencies metadata
> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/11867) in GitLab Premium 12.6. > [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/11867) in GitLab Premium 12.6.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment