Age | Commit message (Collapse) | Author |
|
Add workspaces support to `npm fund`
- Add lib/workspaces/arborist-cmd.js base class
- Add ability to filter fund results to a specific set of workspaces
- Added tests and docs
Fixes: https://github.com/npm/statusboard/issues/301
PR-URL: https://github.com/npm/cli/pull/3241
Credit: @ruyadorno
Close: #3241
Reviewed-by: @isaacs
|
|
Errors will make things stop altogether, dunno if we want to bikeshed
that here or not
PR-URL: https://github.com/npm/cli/pull/3231
Credit: @wraithgar
Close: #3231
Reviewed-by: @ruyadorno
|
|
This was working by coincidence in 7.7.6 and before, and broken in the 7.8.0
refactor. Before, it would see there was no "name" in the spec, and then read
your local package.json, and from that get a latest tag. So, if you didn't
have a package.json in your CWD it would fail with an ENOENT trying to read it.
This fixes it for real, so that if you are asking for info from a git spec, it
goes ahead and looks for the `latest` tag (or whatever tag you have configured
as your default).
PR-URL: https://github.com/npm/cli/pull/3209
Credit: @wraithgar
Close: #3209
Reviewed-by: @ruyadorno
|
|
The mocked npm now uses all config defaults, ensuring we don't have bugs
from the disconnect between our currently heavily mocked tests and
reality. Eventually the npm mock will be closer to reality, this moves
the needle.
PR-URL: https://github.com/npm/cli/pull/3211
Credit: @wraithgar
Close: #3211
Reviewed-by: @ruyadorno
|
|
This adds the 'en' locale to all instances of String.localeCompare
within the CLI codebase.
Tests added for the cases where we're sorting arbitrary user-generated
data. The tests rely on the fact that 'ch' sorts after 'd' in the
`'sk'` locale, but ahead of `'d'` in the `'en'` locale. To ensure that
this is the default behavior if no locale is specified, `LC_ALL=sk` is
set in the test environment.
Other instances of `localeCompare` sort data that the cli controls, so
no tests were added.
Re: https://github.com/npm/cli/issues/2829
PR-URL: https://github.com/npm/cli/pull/3203
Credit: @isaacs
Close: #3203
Reviewed-by: @ruyadorno
|
|
These tests periodically fail in CI, 10 milliseconds is very much not
enough time to account for fuzziness, and 5 minutes is more than enough
precision given the scales of time involved in each test.
PR-URL: https://github.com/npm/cli/pull/3201
Credit: @wraithgar
Close: #3201
Reviewed-by: @nlf
|
|
PR-URL: https://github.com/npm/cli/pull/3198
Credit: @wraithgar
Close: #3198
Reviewed-by: @nlf, @darcyclarke
|
|
PR-URL: https://github.com/npm/cli/pull/3187
Credit: @nlf
Close: #3187
Reviewed-by: @wraithgar
|
|
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
https://github.com/npm/cli/pull/2976#issuecomment-811511134
Signed-off-by: Marco Sirabella <marco@sirabella.org>
PR-URL: https://github.com/npm/cli/pull/3098
Credit: @mjsir911
Close: #3098
Reviewed-by: @wraithgar
|
|
There was code checking node[_type], but we didn't include that field on
the object that is actually checked when we are looking for problems.
Fix: #3137
PR-URL: https://github.com/npm/cli/pull/3140
Credit: @isaacs
Close: #3140
Reviewed-by: @ruyadorno
|
|
As of the recent updates to npm-registry-fetch and @npmcli/config,
this config field is no longer used anywhere.
Prior to those changes, it was used, but not in the manner documented.
|
|
Partially fixes https://github.com/npm/cli/issues/3130
|
|
PR-URL: https://github.com/npm/cli/pull/3126
Credit: @wraithgar
Close: #3126
Reviewed-by: @darcyclarke
|
|
If name and version are missing, the filename won't make sense.
This also slightly reorders operations so that it will bail early on
multiple packages, not potentially packing some before hitting an
invalid package and bailing.
PR-URL: https://github.com/npm/cli/pull/3115
Credit: @wraithgar
Close: #3115
Reviewed-by: @nlf
|
|
Add workspaces support to `npm init`
- Fixes `npm exec` respecting `script-shell` option value
- Refactored `lib/exec.js` into `libnpmexec`
- Updates init-package-json@2.0.3
- Added ability to create a new workspace using the -w config
PR-URL: https://github.com/npm/cli/pull/3095
Credit: @ruyadorno
Close: #3095
Reviewed-by: @wraithgar
|
|
Running `npm ls --json --long --all` was broken for any project
containing a missing dependency from the node_modules folder. This
fixes it by avoiding trying to read the extra data required by the
--long option in case a dependency is missing.
Fixes: https://github.com/npm/cli/issues/2724
PR-URL: https://github.com/npm/cli/pull/3119
Credit: @ruyadorno
Close: #3119
Reviewed-by: @wraithgar
|
|
PR-URL: https://github.com/npm/cli/pull/3086
Credit: @nlf
Close: #3086
Reviewed-by: @wraithgar, @ruyadorno
|
|
PR-URL: https://github.com/npm/cli/pull/3055
Credit: @wraithgar
Close: #3055
Reviewed-by: @darcyclarke
|
|
If a bugs url is not provided, but a `mailto` is, then that is used.
PR-URL: https://github.com/npm/cli/pull/3052
Credit: @Yash-Singh1
Close: #3052
Reviewed-by: @wraithgar
|
|
PR-URL: https://github.com/npm/cli/pull/3069
Credit: @isaacs
Close: #3069
Reviewed-by: @ruyadorno, @nlf
|
|
PR-URL: https://github.com/npm/cli/pull/3033
Credit: @wraithgar
Close: #3033
Reviewed-by: @darcyclarke
|
|
PR-URL: https://github.com/npm/cli/pull/3032
Credit: @nlf
Close: #3032
Reviewed-by: @wraithgar
|
|
While it is somewhat helpful to get reports on this, since it indicates
an underlying problem in Arborist, it's also very disruptive and
unhelpful for users. As of 2.3.0, Arborist gives us the currentEdge if
available, so we _can_ report on that at least. If there is no node
_or_ edge, then we just don't say what the current state is, which isn't
useful, but at least is less annoying than a 'property of null'
exception.
PR-URL: https://github.com/npm/cli/pull/3015
Credit: @isaacs
Close: #3015
Reviewed-by: @wraithgar
|
|
It defaults to true, but setting it to any falsey value will tell
`@npmcli/config` not to export it into the environment, and will also
put a remark in the documentation that it is not exported.
PR-URL: https://github.com/npm/cli/pull/3014
Credit: @isaacs
Close: #3014
Reviewed-by: @nlf
|
|
PR-URL: https://github.com/npm/cli/pull/3001
Credit: @wraithgar
Close: #3001
Reviewed-by: @nlf
|
|
Implements workspaces for set-script, also refactors tests to mock as
little as possible.
PR-URL: https://github.com/npm/cli/pull/2998
Credit: @nlf
Close: #2998
Reviewed-by: @wraithgar
|
|
This adds workspaces support to `npm repo` and `npm docs`.
It also updates the usage output to support the -w and -ws parameters
output, and cleans up some unneccessary functions in `run-script` and
`exec`.
PR-URL: https://github.com/npm/cli/pull/2972
Credit: @wraithgar
Close: #2972
Reviewed-by: @nlf
|
|
Starting in v7.7.0 running `npm` (no args) is printing an empty newline
to stderr.
This fixes that by correctly exiting via errorHandler and avoiding
hitting the cb() never called error and adds a test to make sure we
avoid that regression moving forward.
Fixes: https://github.com/nodejs/node/pull/37678#issuecomment-808734374
Co-authored-by: Gar <gar+gh@danger.computer>
|
|
Each affects the other
PR-URL: https://github.com/npm/cli/pull/2965
Credit: @wraithgar
Close: #2965
Reviewed-by: @nlf
|
|
This config item is a bit of a unique one, as it can be set as a
template, but then gets translated and also populated to
process.env.npm_config_user_agent. This adds that logic back in during
the flattening.
PR-URL: https://github.com/npm/cli/pull/2964
Credit: @wraithgar
Close: #2964
Reviewed-by: @nlf
|
|
This ensures that we get a npm_command env set to, eg 'run-script'
instead of the shorthand 'run'.
PR-URL: https://github.com/npm/cli/pull/2958
Credit: @isaacs
Close: #2958
Reviewed-by: @wraithgar
|
|
The current regex will match any .[0-9]. pattern anywhere in the path, which will give incorrect results if npm is installed to a path like .../node-v14.5.5/...
This change restricts it to only the last path element.
PR-URL: https://github.com/npm/cli/pull/2949
Credit: @dmchurch
Close: #2949
Reviewed-by: @wraithgar
|
|
This allows for overriding the implicit omit value based on if
NODE_ENV=production
PR-URL: https://github.com/npm/cli/pull/2951
Credit: @wraithgar
Close: #2951
Reviewed-by: @ruyadorno
|
|
When a workspace/workspaces config option is defined, we should log a
warning message to be explicit about not supporting workspaces in the
context of the `npm config` command.
PR-URL: https://github.com/npm/cli/pull/2950
Credit: @ruyadorno
Close: #2950
Reviewed-by: @wraithgar
|
|
PR-URL: https://github.com/npm/cli/pull/2925
Credit: @Yash-Singh1
Close: #2925
Reviewed-by: @ruyadorno
|
|
The logger was no longer in flatOptions, we pass it in explicitly now
PR-URL: https://github.com/npm/cli/pull/2944
Credit: @wraithgar
Close: #2944
Reviewed-by: @nlf
|
|
PR-URL: https://github.com/npm/cli/pull/2945
Credit: @nlf
Close: #2945
Reviewed-by: @wraithgar
|
|
`npm install` should not be affected by the `auditLevel` config, as the
results of audit do not change its exit status.
PR-URL: https://github.com/npm/cli/pull/2929
Credit: @wraithgar
Close: #2929
Reviewed-by: @ljharb, @ruyadorno
|
|
This consolidates all the various --include and --omit configuration
flatteners into a single function, since they have to be interdependent
in order to function properly.
Fix: #2936
PR-URL: https://github.com/npm/cli/pull/2942
Credit: @isaacs
Close: #2942
Reviewed-by: @wraithgar
|
|
It needs to take save-exact into consideration
Closes: https://github.com/npm/cli/issues/2932
PR-URL: https://github.com/npm/cli/pull/2937
Credit: @wraithgar
Close: #2937
Reviewed-by: @ruyadorno
|
|
Corrects non-global prefix path by using this.npm.localPrefix. A
location already used throughout the repository. Later, this will be
taken from the unified config library.
Signed-off-by: James Chen-Smith <jameschensmith@gmail.com>
PR-URL: https://github.com/npm/cli/pull/2930
Credit: @jameschensmith
Close: #2930
Reviewed-by: @ruyadorno
|
|
|
|
Replaces usage of flatOptions with npm.config.
|
|
The default value for the `which` config option used in the `npm fund`
command is now `null` instead of the previously used `undefined`.
|
|
`npm exec <pkg>` was failing for packages not available in the local or
global scope due to the default value of the `yes` config having been
changed to `false` during the latest config refactor. That caused
`npm exec` to throw with a `canceled` error message since the current
implementation expects the default value to be falsy but not `false`.
This change reinstates the previous default config value for `yes` and
changes the implementation to throw with a proper error object in order
to get a stack trace when running with `--loglevel=verbose`.
|
|
PR-URL: https://github.com/npm/cli/pull/2917
Credit: @wraithgar
Close: #2917
Reviewed-by: @ruyadorno
|
|
Add workspaces support to `npm exec`
- Refactored logic to read and filter workspaces into
`lib/workspaces/get-workspaces.js`
- Added location context message when entering interactive
shell using `npm exec` (with no args)
- Add ability to execute a package in the context of each
configured workspace
Fixes: https://github.com/npm/statusboard/issues/288
PR-URL: https://github.com/npm/cli/pull/2886
Credit: @ruyadorno
Close: #2886
Reviewed-by: @wraithgar
|
|
This starts us down the path of tying the params our commands accept to
their config items. For now it is optional, and not every current
config item would cleanly render if we added them today.
The ones that are added here DO render nicely, and we can iterate from
here. We can also at a later date do the same kind of appraoch with our
positional args.
PR-URL: https://github.com/npm/cli/pull/2908
Credit: @wraithgar
Close: #2908
Reviewed-by: @nlf, @isaacs
|
|
Base commands and `npm run` need different outputs
PR-URL: https://github.com/npm/cli/pull/2906
Credit: @wraithgar
Close: #2906
Reviewed-by: @ruyadorno
|
|
This is used by npm-registry-fetch to set the 'npm-command' HTTP header.
Will be cleaned up in a less ugly way in config refactor part 2.
PR-URL: https://github.com/npm/cli/pull/2903
Credit: @isaacs
Close: #2903
Reviewed-by: @wraithgar
|