Age | Commit message (Collapse) | Author |
|
Add a script and Makefile rule to build the "Configuration" section for
all command documentation based on the command classes' `params` list.
Also correct several minor problems in the documentation, and add
`params` listings for commands that were lacking them, to match the
existing documentation and/or behavior within the code.
PR-URL: https://github.com/npm/cli/pull/3243
Credit: @isaacs
Close: #3243
Reviewed-by: @wraithgar
|
|
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
|
|
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
|
|
PR-URL: https://github.com/npm/cli/pull/3187
Credit: @nlf
Close: #3187
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.
|
|
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
|
|
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
|
|
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
|
|
Adds workspaces configuration to `docs`, `repo`, and `set-script`.
PR-URL: https://github.com/npm/cli/pull/3013
Credit: @wraithgar
Close: #3013
Reviewed-by: @darcyclarke
|
|
If a user runs 'npm install -w foo bar baz', that won't set 'bar' and
'baz' as workspace names. The correct incantation is 'npm install -w
foo -w bar -w baz'.
PR-URL: https://github.com/npm/cli/pull/3016
Credit: @isaacs
Close: #3016
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
|
|
This got left out of the npm view workspaces PR
|
|
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
|
|
|
|
The default value for 'maxsockets' was changed during the refactoring
in #2878 from 50 to 'Inifinity', this PR changes it to the more
accurate value of 15, which was the default used in:
https://github.com/npm/make-fetch-happen/blob/785af652ec0c8f108a43004903afd2183af93904/agent.js#L15
Fixes #2978
PR-URL: https://github.com/npm/cli/pull/2979
Credit: @wallrat
Close: #2979
Reviewed-by: @ruyadorno
Co-authored-by: Gar <gar+gh@danger.computer>
|
|
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>
|
|
Lightweight smoke test suite that runs common commands so that we can
also have a holistic check during CI.
PR-URL: https://github.com/npm/cli/pull/2959
Credit: @ruyadorno
Close: #2959
Reviewed-by: @nlf
|
|
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
|
|
This is a valid level but wasn't configured to be allowed.
Also added this param to the usage output for `npm audit`
PR-URL: https://github.com/npm/cli/pull/2923
Credit: @wraithgar
Close: #2923
Reviewed-by: @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
|
|
|
|
`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`.
|
|
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
|
|
- Add workspaces-related configs:
- workspace: list of workspaces names/dir to filter for
- workspaces: boolean value to enable/disable workspaces awareness
- adds the proposed note in the docs of each of the commands
that are not affected by these configs.
- Add workspaces support to `npm run-script`
- add ability to serially run lifecycle scripts in workspaces
- add ability to list scripts for all workspaces
- add colors to `npm run` (no args) output
Relates to: https://github.com/npm/rfcs/pull/117
Fixes: https://github.com/npm/statusboard/issues/276
Fixes: https://github.com/npm/statusboard/issues/283
Fixes: https://github.com/npm/statusboard/issues/284
Fixes: https://github.com/npm/statusboard/issues/285
Fixes: https://github.com/npm/statusboard/issues/286
PR-URL: https://github.com/npm/cli/pull/2864
Credit: @ruyadorno
Close: #2864
Reviewed-by: @wraithgar
|
|
Lots of dead code removed thanks to streamlining of logic.
`npm help` `npm <command>` and `npm help-search` are all now separated
concerns, handling their own use cases. `help` calls `help-search` as a
last resort, but `npm <command>` no longer tries to wind its way through
to `help-search` just to get the basic npm usage displayed.
The `did you mean` output has been expanded. It now always suggests top
level commands, scripts, and bins, and suggests them in the way they
should be called.
PR-URL: https://github.com/npm/cli/pull/2859
Credit: @wraithgar
Close: #2859
Reviewed-by: @ruyadorno
|
|
PR-URL: https://github.com/npm/cli/pull/2878
Credit: @isaacs
Close: #2878
Reviewed-by: @isaacs
|
|
This replaces the multiple separate sets of objects and documentation,
some of which had defaults and/or types, some of which didn't, and cleans
up a lot of configs that are no longer used.
Deprecated configs are now marked, and the approach used to create these
config definitions ensures that it is impossible to create a new config
option that lacks the appropriate data for it.
|
|
PR-URL: https://github.com/npm/cli/pull/2855
Credit: @dwardu
Close: #2855
Reviewed-by: @ruyadorno, @darcyclarke
|
|
Small refactor of commands to allow usage to be more programmatically
generated, leading us in the direction of more tighly coupling each
command to the params it accepts.
PR-URL: https://github.com/npm/cli/pull/2821
Credit: @wraithgar
Close: #2821
Reviewed-by: @isaacs
|
|
All output that anything wants to make now goes through
`npm.output()`. This is an incremental change getting us
closer to where we want to be with testing.
PR-URL: https://github.com/npm/cli/pull/2795
Credit: @wraithgar
Close: #2795
Reviewed-by: @ruyadorno, @isaacs
|
|
PR-URL: https://github.com/npm/cli/pull/2807
Credit: @kumavis
Close: #2807
Reviewed-by: @ruyadorno
|
|
Instead of files randomly requiring the npm singleton,
we pass it where it needs to go so that tests don't need
to do so much require mocking everywhere
PR-URL: https://github.com/npm/cli/pull/2772
Credit: @wraithgar
Close: #2772
Reviewed-by: @ruyadorno
|
|
I checked cli's code with Typescript using the tsconfig below. The
compiler found a few arguments that are not used, so I removed them. In
the case of `npm whoami`, it is clearer that it ignores its `args`
and instead relies on `npm.flatOptions`.
```json
{
"compilerOptions": {
"moduleResolution": "node",
"module": "commonjs",
"resolveJsonModule": true,
"target": "es2019",
"noImplicitAny": false,
"noImplicitThis": true,
"strict": true,
"maxNodeModuleJsDepth": 0,
"noEmit": true,
"allowJs": true,
"checkJs": true,
"types": ["node"],
"lib": ["esnext"]
},
"include": ["lib"]
}
```
PR-URL: https://github.com/npm/cli/pull/2766
Credit: @sandersn
Close: #2766
Reviewed-by: @nlf, @ruyadorno, @Matausi29
|
|
When using `npm explain <package>` it's useful to see if the package has
been bundled. This is especially useful when trying to understand the
provenance of a package's content
PR-URL: https://github.com/npm/cli/pull/2750
Credit: @kumavis
Close: #2750
Reviewed-by: @nlf
|
|
PR-URL: https://github.com/npm/cli/pull/2743
Credit: @isaacs
Close: #2743
Reviewed-by: @nlf
|
|
There are a few commands (exec, run-script, and the run-script proxies)
where essentially npm is acting like a very fancy shell. It is peculiar
and noisy for npm to print a verbose error banner at the end of these
commands, since presumably the command itself already did whatever it
had to do to report the error appropriately.
For example, `npm test` runs a test script, usually outputting test
results. Having npm then tell me that my tests failed with exit status
1 and print a debug log, is unnecessary and unwanted.
When the error encountered for these commands does not have a non-zero
numeric 'code', then we still print the standard npm error reporting
messages, because presumably something went wrong OTHER than a process
exiting with a non-zero status code.
PR-URL: https://github.com/npm/cli/pull/2742
Credit: @isaacs
Close: #2742
Reviewed-by: @nlf
|
|
- remove spawn util, refactor help command
- add tests for read-user-info, minor refactor
- add tests for pulse-till-done util, refactor
- add tests for otplease util
- add tests for open-url util
- remove unused no-progress-while-running util
PR-URL: https://github.com/npm/cli/pull/2601
Credit: @nlf
Close: #2601
Reviewed-by: @ruyadorno, @wraithgar
|
|
|
|
|
|
- As proposed in RFC: https://github.com/npm/rfcs/pull/144
PR-URL: https://github.com/npm/cli/pull/1319
Credit: @ruyadorno
Close: #1319
Reviewed-by: @isaacs
|
|
correctly identify already linked packages when global prefix is a symlink
PR-URL: https://github.com/npm/cli/pull/2486
Credit: @nlf
Close: #2486
Reviewed-by: @wraithgar
|