deps: upgrade npm to 7.5.1

PR-URL: https://github.com/nodejs/node/pull/37177
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
This commit is contained in:
Ruy Adorno authored and Michaël Zasso committed 2021-02-02 10:31:47 +01:00
1 parent 638fb48911
commit 3c0672e3f6
104 files changed
+1027 -198

No files matched your search

+2
View File
@@ -748,3 +748,5 @@ Jeff Griffiths <jeff@eko-recordings.ca>
Michael Garvin <gar+gh@danger.computer>
Gar <gar+gh@danger.computer>
dr-js <dr@dr.run>
Pavan Bellamkonda <31280326+pavanbellamkonda@users.noreply.github.com>
Alexander Riccio <test35965@gmail.com>
+42
View File
@@ -1,3 +1,45 @@
## v7.5.1 (2021-02-01
### BUG FIXES
* [`0ea134e41`](https://github.com/npm/cli/commit/0ea134e4190f322138299c51672eab5387ec41bb)
[#2587](https://github.com/npm/cli/issues/2587)
pass all settings through to pacote.packument, fixes #2060
([@nlf](https://github.com/nlf))
* [`8c5ca2f51`](https://github.com/npm/cli/commit/8c5ca2f516f5ac87f3bbd7f1fd95c0b283a21f14)
Add test for npm-usage.js, and fix 'npm --long' output
([@isaacs](https://github.com/isaacs))
### DEPENDENCIES
* [`7e4e88e93`](https://github.com/npm/cli/commit/7e4e88e938323e34a2a41176472d8e43e84bd4dd)
`@npmcli/arborist@2.1.1`, `pacote@11.2.4`
* Properly raise ERESOLVE errors on root dev dependencies
* Ignore ERESOLVE errors when performing git dep 'prepare' scripts
* Always reinstall packages that are explicitly requested
* fix global update all so it actually updates things
* Install bins properly when global root is a link
([@isaacs](https://github.com/isaacs))
### DOCUMENTATION
* [`23dac2fef`](https://github.com/npm/cli/commit/23dac2feff1d02193791c7e39d9e93bc9bf8e624)
[#2557](https://github.com/npm/cli/issues/2557)
npm team revamp
([@ruyadorno](https://github.com/ruyadorno))
* [`dd05ba0c0`](https://github.com/npm/cli/commit/dd05ba0c0b2f4c70eb8558c0ecc54889efbe98f5)
[#2572](https://github.com/npm/cli/issues/2572)
add note about `--force` overriding peer dependencies
([@isaacs](https://github.com/isaacs))
* [`e27639780`](https://github.com/npm/cli/commit/e276397809aceb01cc468e02a83bc6f2265376d9)
[#2584](https://github.com/npm/cli/issues/2584)
Fixed the spelling of contributor as it was written as conributor
([@pavanbellamkonda](https://github.com/pavanbellamkonda))
* [`13a5e3178`](https://github.com/npm/cli/commit/13a5e31781cdaa37d3f007e1c8583c7cb591c62a)
[#2502](https://github.com/npm/cli/issues/2502)
elaborate that npm help uses browser
([@ariccio](https://github.com/ariccio))
## v7.5.0 (2021-01-28)
### FEATURES
+1 -1
View File
@@ -29,7 +29,7 @@ $ cd ./npm && npm install
$ npm run test
```
**5. Open a [Pull Request](https://github.com/npm/cli/pulls) for your work & become the newest conributor to `npm`! 🎉**
**5. Open a [Pull Request](https://github.com/npm/cli/pulls) for your work & become the newest contributor to `npm`! 🎉**
## Test Coverage
+56 -12
View File
@@ -14,8 +14,6 @@ npm team add <scope:team> <user>
npm team rm <scope:team> <user>
npm team ls <scope>|<scope:team>
npm team edit <scope:team>
```
### Description
@@ -24,31 +22,76 @@ Used to manage teams in organizations, and change team memberships. Does not
handle permissions for packages.
Teams must always be fully qualified with the organization/scope they belong to
when operating on them, separated by a colon (`:`). That is, if you have a `wombats` team in a `wisdom` organization, you must always refer to that team as `wisdom:wombats` in these commands.
when operating on them, separated by a colon (`:`). That is, if you have a
`newteam` team in an `org` organization, you must always refer to that team
as `@org:newteam` in these commands.
If you have two-factor authentication enabled in `auth-and-writes` mode, then you can provide a code from your authenticator with `[--otp <otpcode>]`. If you don't include this then you will be prompted.
If you have two-factor authentication enabled in `auth-and-writes` mode, then
you can provide a code from your authenticator with `[--otp <otpcode>]`.
If you don't include this then you will be prompted.
* create / destroy:
Create a new team, or destroy an existing one. Note: You cannot remove the `developers` team, <a href="https://docs.npmjs.com/about-developers-team" target="_blank">learn more.</a>
* add / rm:
Add a user to an existing team, or remove a user from a team they belong to.
Create a new team, or destroy an existing one. Note: You cannot remove the
`developers` team, <a href="https://docs.npmjs.com/about-developers-team" target="_blank">learn more.</a>
Here's how to create a new team `newteam` under the `org` org:
```bash
npm team create @org:newteam
```
You should see a confirming message such as: `+@org:newteam` once the new
team has been created.
* add:
Add a user to an existing team.
Adding a new user `username` to a team named `newteam` under the `org` org:
```bash
npm team add @org:newteam username
```
On success, you should see a message: `username added to @org:newteam`
* rm:
Using `npm team rm` you can also remove users from a team they belong to.
Here's an example removing user `username` from `newteam` team
in `org` organization:
```bash
npm team rm @org:newteam username
```
Once the user is removed a confirmation message is displayed:
`username removed from @org:newteam`
* ls:
If performed on an organization name, will return a list of existing teams
under that organization. If performed on a team, it will instead return a list
of all users belonging to that particular team.
* edit:
Edit a current team.
Here's an example of how to list all teams from an org named `org`:
```bash
npm team ls @org
```
Example listing all members of a team named `newteam`:
```bash
npm team ls @org:newteam
```
### Details
`npm team` always operates directly on the current registry, configurable from
the command line using `--registry=<registry url>`.
In order to create teams and manage team membership, you must be a *team admin*
under the given organization. Listing teams and team memberships may be done by
any member of the organizations.
You must be a *team admin* to create teams and manage team membership, under
the given organization. Listing teams and team memberships may be done by
any member of the organization.
Organization creation and management of team admins and *organization* members
is done through the website, not the npm CLI.
@@ -59,4 +102,5 @@ use the `npm access` command to grant or revoke the appropriate permissions.
### See Also
* [npm access](/commands/npm-access)
* [npm config](/commands/npm-config)
* [npm registry](/using-npm/registry)
+1
View File
@@ -472,6 +472,7 @@ mistakes, unnecessary performance degradation, and malicious input.
range (including SemVer-major changes).
* Allow a module to be installed as a direct dependency of itself.
* Allow unpublishing all versions of a published package.
* Allow conflicting peerDependencies to be installed in the root project.
If you don't have a clear idea of what you want to do, it is strongly
recommended that you do not use this option!
+1 -1
View File
@@ -159,7 +159,7 @@ tree at all, use <a href="../commands/npm-explain.html"><code>npm explain</code>
the results to only the paths to the packages named. Note that nested
packages will <em>also</em> show the paths to the specified packages. For
example, running <code>npm ls promzard</code> in npm’s source tree will show:</p>
<pre lang="bash"><code>npm@7.5.0 /path/to/npm
<pre lang="bash"><code>npm@7.5.1 /path/to/npm
└─┬ init-package-json@0.0.4
└── promzard@0.1.5
</code></pre>
+39 -14
View File
@@ -152,41 +152,65 @@ npm team add &lt;scope:team&gt; &lt;user&gt;
npm team rm &lt;scope:team&gt; &lt;user&gt;
npm team ls &lt;scope&gt;|&lt;scope:team&gt;
npm team edit &lt;scope:team&gt;
</code></pre>
<h3 id="description">Description</h3>
<p>Used to manage teams in organizations, and change team memberships. Does not
handle permissions for packages.</p>
<p>Teams must always be fully qualified with the organization/scope they belong to
when operating on them, separated by a colon (<code>:</code>). That is, if you have a <code>wombats</code> team in a <code>wisdom</code> organization, you must always refer to that team as <code>wisdom:wombats</code> in these commands.</p>
<p>If you have two-factor authentication enabled in <code>auth-and-writes</code> mode, then you can provide a code from your authenticator with <code>[--otp &lt;otpcode&gt;]</code>. If you don’t include this then you will be prompted.</p>
when operating on them, separated by a colon (<code>:</code>). That is, if you have a
<code>newteam</code> team in an <code>org</code> organization, you must always refer to that team
as <code>@org:newteam</code> in these commands.</p>
<p>If you have two-factor authentication enabled in <code>auth-and-writes</code> mode, then
you can provide a code from your authenticator with <code>[--otp &lt;otpcode&gt;]</code>.
If you don’t include this then you will be prompted.</p>
<ul>
<li>
<p>create / destroy:
Create a new team, or destroy an existing one. Note: You cannot remove the <code>developers</code> team, <!-- raw HTML omitted -->learn more.<!-- raw HTML omitted --></p>
Create a new team, or destroy an existing one. Note: You cannot remove the
<code>developers</code> team, <!-- raw HTML omitted -->learn more.<!-- raw HTML omitted --></p>
<p>Here’s how to create a new team <code>newteam</code> under the <code>org</code> org:</p>
<pre lang="bash"><code>npm team create @org:newteam
</code></pre>
<p>You should see a confirming message such as: <code>+@org:newteam</code> once the new
team has been created.</p>
</li>
<li>
<p>add / rm:
Add a user to an existing team, or remove a user from a team they belong to.</p>
<p>add:
Add a user to an existing team.</p>
<p>Adding a new user <code>username</code> to a team named <code>newteam</code> under the <code>org</code> org:</p>
<pre lang="bash"><code>npm team add @org:newteam username
</code></pre>
<p>On success, you should see a message: <code>username added to @org:newteam</code></p>
</li>
<li>
<p>rm:
Using <code>npm team rm</code> you can also remove users from a team they belong to.</p>
<p>Here’s an example removing user <code>username</code> from <code>newteam</code> team
in <code>org</code> organization:</p>
<pre lang="bash"><code>npm team rm @org:newteam username
</code></pre>
<p>Once the user is removed a confirmation message is displayed:
<code>username removed from @org:newteam</code></p>
</li>
<li>
<p>ls:
If performed on an organization name, will return a list of existing teams
under that organization. If performed on a team, it will instead return a list
of all users belonging to that particular team.</p>
</li>
<li>
<p>edit:
Edit a current team.</p>
<p>Here’s an example of how to list all teams from an org named <code>org</code>:</p>
<pre lang="bash"><code>npm team ls @org
</code></pre>
<p>Example listing all members of a team named <code>newteam</code>:</p>
<pre lang="bash"><code>npm team ls @org:newteam
</code></pre>
</li>
</ul>
<h3 id="details">Details</h3>
<p><code>npm team</code> always operates directly on the current registry, configurable from
the command line using <code>--registry=&lt;registry url&gt;</code>.</p>
<p>In order to create teams and manage team membership, you must be a <em>team admin</em>
under the given organization. Listing teams and team memberships may be done by
any member of the organizations.</p>
<p>You must be a <em>team admin</em> to create teams and manage team membership, under
the given organization. Listing teams and team memberships may be done by
any member of the organization.</p>
<p>Organization creation and management of team admins and <em>organization</em> members
is done through the website, not the npm CLI.</p>
<p>To use teams to manage permissions on packages belonging to your organization,
@@ -194,6 +218,7 @@ use the <code>npm access</code> command to grant or revoke the appropriate permi
<h3 id="see-also">See Also</h3>
<ul>
<li><a href="../commands/npm-access.html">npm access</a></li>
<li><a href="../commands/npm-config.html">npm config</a></li>
<li><a href="../using-npm/registry.html">npm registry</a></li>
</ul>
</div>
+1 -1
View File
@@ -148,7 +148,7 @@ npm command-line interface
<pre lang="bash"><code>npm &lt;command&gt; [args]
</code></pre>
<h3 id="version">Version</h3>
<p>7.5.0</p>
<p>7.5.1</p>
<h3 id="description">Description</h3>
<p>npm is the package manager for the Node JavaScript platform. It puts
modules in place so that node can find them, and manages dependency
+1
View File
@@ -534,6 +534,7 @@ different version of <code>node</code>, even if <code>--engines-strict</code> is
range (including SemVer-major changes).</li>
<li>Allow a module to be installed as a direct dependency of itself.</li>
<li>Allow unpublishing all versions of a published package.</li>
<li>Allow conflicting peerDependencies to be installed in the root project.</li>
</ul>
<p>If you don’t have a clear idea of what you want to do, it is strongly
recommended that you do not use this option!</p>
+1 -2
View File
@@ -8,7 +8,6 @@ const output = require('./utils/output.js')
const otplease = require('./utils/otplease.js')
const usageUtil = require('./utils/usage.js')
const getIdentity = require('./utils/get-identity.js')
const { prefix } = npm
const usage = usageUtil(
'npm access',
@@ -165,7 +164,7 @@ const getPackage = async (name, requireScope) => {
return name.trim()
else {
try {
const pkg = await readPackageJson(path.resolve(prefix, 'package.json'))
const pkg = await readPackageJson(path.resolve(npm.prefix, 'package.json'))
name = pkg.name
} catch (err) {
if (err.code === 'ENOENT') {
+13 -1
View File
@@ -3,6 +3,8 @@ const Arborist = require('@npmcli/arborist')
const rimraf = util.promisify(require('rimraf'))
const reifyFinish = require('./utils/reify-finish.js')
const runScript = require('@npmcli/run-script')
const fs = require('fs')
const readdir = util.promisify(fs.readdir)
const log = require('npmlog')
const npm = require('./npm.js')
@@ -13,6 +15,16 @@ const completion = require('./utils/completion/none.js')
const cmd = (args, cb) => ci().then(() => cb()).catch(cb)
const removeNodeModules = async where => {
const rimrafOpts = { glob: false }
process.emit('time', 'npm-ci:rm')
const path = `${where}/node_modules`
// get the list of entries so we can skip the glob for performance
const entries = await readdir(path, null).catch(er => [])
await Promise.all(entries.map(f => rimraf(`${path}/${f}`, rimrafOpts)))
process.emit('timeEnd', 'npm-ci:rm')
}
const ci = async () => {
if (npm.flatOptions.global) {
const err = new Error('`npm ci` does not work for global packages')
@@ -33,7 +45,7 @@ const ci = async () => {
'later to generate a package-lock.json file, then try again.'
throw new Error(msg)
}),
rimraf(`${where}/node_modules/*`, { glob: { dot: true, nosort: true, silent: true } }),
removeNodeModules(where),
])
// npm ci should never modify the lockfile or package.json
await arb.reify({ ...npm.flatOptions, save: false })
+1 -2
View File
@@ -135,12 +135,11 @@ const searchFiles = async (args, data, files) => {
// coverage is ignored here because the contents of results are
// nondeterministic due to either glob or readFiles or Object.entries
return results.sort((a, b) =>
return results.sort(/* istanbul ignore next */ (a, b) =>
a.found.length > b.found.length ? -1
: a.found.length < b.found.length ? 1
: a.totalHits > b.totalHits ? -1
: a.totalHits < b.totalHits ? 1
/* istanbul ignore next */
: a.lines.length > b.lines.length ? -1
: a.lines.length < b.lines.length ? 1
: 0).slice(0, 10)
+1
View File
@@ -108,6 +108,7 @@ async function outdated_ (tree, deps, opts) {
async function getPackument (spec) {
const packument = await pacote.packument(spec, {
...npm.flatOptions,
fullMetadata: npm.flatOptions.long,
preferOnline: true,
})
+3 -7
View File
@@ -1,7 +1,3 @@
function ansiTrim (str) {
var r = new RegExp('\x1b(?:\\[(?:\\d+[ABCDEFGJKSTm]|\\d+;\\d+[Hfm]|' +
'\\d+;\\d+;\\d+m|6n|s|u|\\?25[lh])|\\w)', 'g')
return str.replace(r, '')
}
module.exports = ansiTrim
const r = new RegExp('\x1b(?:\\[(?:\\d+[ABCDEFGJKSTm]|\\d+;\\d+[Hfm]|' +
'\\d+;\\d+;\\d+m|6n|s|u|\\?25[lh])|\\w)', 'g')
module.exports = str => str.replace(r, '')
+25 -33
View File
@@ -6,6 +6,8 @@ const { cmdList } = require('./cmd-list')
module.exports = (valid = true) => {
npm.config.set('loglevel', 'silent')
const usesBrowser = npm.config.get('viewer') === 'browser'
? ' (in a browser)' : ''
npm.log.level = 'silent'
output(`
Usage: npm <command>
@@ -16,8 +18,8 @@ npm test run this project's tests
npm run <foo> run the script named <foo>
npm <command> -h quick help on <command>
npm -l display usage info for all commands
npm help <term> search for help on <term>
npm help npm more involved overview
npm help <term> search for help on <term>${usesBrowser}
npm help npm more involved overview${usesBrowser}
All commands:
${npm.config.get('long') ? usages() : ('\n ' + wrap(cmdList))}
@@ -40,44 +42,34 @@ npm@${npm.version} ${dirname(dirname(__dirname))}
}
const wrap = (arr) => {
var out = ['']
var l = 0
var line
const out = ['']
line = process.stdout.columns
if (!line)
line = 60
else
line = Math.min(60, Math.max(line - 16, 24))
const line = !process.stdout.columns ? 60
: Math.min(60, Math.max(process.stdout.columns - 16, 24))
arr.sort(function (a, b) {
return a < b ? -1 : 1
})
.forEach(function (c) {
if (out[l].length + c.length + 2 < line)
out[l] += ', ' + c
else {
out[l++] += ','
out[l] = c
}
})
let l = 0
for (const c of arr.sort((a, b) => a < b ? -1 : 1)) {
if (out[l].length + c.length + 2 < line)
out[l] += ', ' + c
else {
out[l++] += ','
out[l] = c
}
}
return out.join('\n ').substr(2)
}
const usages = () => {
// return a string of <command>: <usage>
var maxLen = 0
return cmdList.reduce(function (set, c) {
set.push([c, require(`./${npm.deref(c)}.js`).usage || ''])
let maxLen = 0
return cmdList.reduce((set, c) => {
set.push([c, require(`../${npm.deref(c)}.js`).usage ||
/* istanbul ignore next - all commands should have usage */ ''])
maxLen = Math.max(maxLen, c.length)
return set
}, []).sort((a, b) => {
return a[0].localeCompare(b[0])
}).map(function (item) {
var c = item[0]
var usage = item[1]
return '\n ' +
c + (new Array(maxLen - c.length + 2).join(' ')) +
(usage.split('\n').join('\n' + (new Array(maxLen + 6).join(' '))))
}).join('\n')
}, [])
.sort((a, b) => a[0].localeCompare(b[0]))
.map(([c, usage]) => `\n ${c}${' '.repeat(maxLen - c.length + 1)}${
(usage.split('\n').join('\n' + ' '.repeat(maxLen + 5)))}`)
.join('\n')
}
-2
View File
@@ -1,4 +1,3 @@
const validate = require('aproba')
const log = require('npmlog')
let pulsers = 0
@@ -18,7 +17,6 @@ function pulseStop () {
}
module.exports = function (prefix, cb) {
validate('SF', [prefix, cb])
if (!prefix)
prefix = 'network'
pulseStart(prefix)
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-ACCESS" "1" "January 2021" "" ""
.TH "NPM\-ACCESS" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-access\fR \- Set access level on published packages
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-ADDUSER" "1" "January 2021" "" ""
.TH "NPM\-ADDUSER" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-adduser\fR \- Add a registry user account
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-AUDIT" "1" "January 2021" "" ""
.TH "NPM\-AUDIT" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-audit\fR \- Run a security audit
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-BIN" "1" "January 2021" "" ""
.TH "NPM\-BIN" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-bin\fR \- Display npm bin folder
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-BUGS" "1" "January 2021" "" ""
.TH "NPM\-BUGS" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-bugs\fR \- Report bugs for a package in a web browser
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-CACHE" "1" "January 2021" "" ""
.TH "NPM\-CACHE" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-cache\fR \- Manipulates packages cache
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-CI" "1" "January 2021" "" ""
.TH "NPM\-CI" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-ci\fR \- Install a project with a clean slate
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-COMPLETION" "1" "January 2021" "" ""
.TH "NPM\-COMPLETION" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-completion\fR \- Tab Completion for npm
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-CONFIG" "1" "January 2021" "" ""
.TH "NPM\-CONFIG" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-config\fR \- Manage the npm configuration files
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-DEDUPE" "1" "January 2021" "" ""
.TH "NPM\-DEDUPE" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-dedupe\fR \- Reduce duplication
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-DEPRECATE" "1" "January 2021" "" ""
.TH "NPM\-DEPRECATE" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-deprecate\fR \- Deprecate a version of a package
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-DIFF" "1" "January 2021" "" ""
.TH "NPM\-DIFF" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-diff\fR \- The registry diff command
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-DIST\-TAG" "1" "January 2021" "" ""
.TH "NPM\-DIST\-TAG" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-dist-tag\fR \- Modify package distribution tags
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-DOCS" "1" "January 2021" "" ""
.TH "NPM\-DOCS" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-docs\fR \- Open documentation for a package in a web browser
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-DOCTOR" "1" "January 2021" "" ""
.TH "NPM\-DOCTOR" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-doctor\fR \- Check your npm environment
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-EDIT" "1" "January 2021" "" ""
.TH "NPM\-EDIT" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-edit\fR \- Edit an installed package
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-EXEC" "1" "January 2021" "" ""
.TH "NPM\-EXEC" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-exec\fR \- Run a command from a local or remote npm package
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-EXPLAIN" "1" "January 2021" "" ""
.TH "NPM\-EXPLAIN" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-explain\fR \- Explain installed packages
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-EXPLORE" "1" "January 2021" "" ""
.TH "NPM\-EXPLORE" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-explore\fR \- Browse an installed package
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-FUND" "1" "January 2021" "" ""
.TH "NPM\-FUND" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-fund\fR \- Retrieve funding information
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-HELP\-SEARCH" "1" "January 2021" "" ""
.TH "NPM\-HELP\-SEARCH" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-help-search\fR \- Search npm help documentation
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-HELP" "1" "January 2021" "" ""
.TH "NPM\-HELP" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-help\fR \- Get help on npm
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-HOOK" "1" "January 2021" "" ""
.TH "NPM\-HOOK" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-hook\fR \- Manage registry hooks
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-INIT" "1" "January 2021" "" ""
.TH "NPM\-INIT" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-init\fR \- create a package\.json file
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-INSTALL\-CI\-TEST" "1" "January 2021" "" ""
.TH "NPM\-INSTALL\-CI\-TEST" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-install-ci-test\fR \- Install a project with a clean slate and run tests
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-INSTALL\-TEST" "1" "January 2021" "" ""
.TH "NPM\-INSTALL\-TEST" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-install-test\fR \- Install package(s) and run tests
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-INSTALL" "1" "January 2021" "" ""
.TH "NPM\-INSTALL" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-install\fR \- Install a package
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-LINK" "1" "January 2021" "" ""
.TH "NPM\-LINK" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-link\fR \- Symlink a package folder
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-LOGOUT" "1" "January 2021" "" ""
.TH "NPM\-LOGOUT" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-logout\fR \- Log out of the registry
.SS Synopsis
+2 -2
View File
@@ -1,4 +1,4 @@
.TH "NPM\-LS" "1" "January 2021" "" ""
.TH "NPM\-LS" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-ls\fR \- List installed packages
.SS Synopsis
@@ -26,7 +26,7 @@ example, running \fBnpm ls promzard\fP in npm's source tree will show:
.P
.RS 2
.nf
npm@7\.5\.0 /path/to/npm
npm@7\.5\.1 /path/to/npm
└─┬ init\-package\-json@0\.0\.4
└── promzard@0\.1\.5
.fi
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-ORG" "1" "January 2021" "" ""
.TH "NPM\-ORG" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-org\fR \- Manage orgs
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-OUTDATED" "1" "January 2021" "" ""
.TH "NPM\-OUTDATED" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-outdated\fR \- Check for outdated packages
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-OWNER" "1" "January 2021" "" ""
.TH "NPM\-OWNER" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-owner\fR \- Manage package owners
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-PACK" "1" "January 2021" "" ""
.TH "NPM\-PACK" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-pack\fR \- Create a tarball from a package
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-PING" "1" "January 2021" "" ""
.TH "NPM\-PING" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-ping\fR \- Ping npm registry
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-PREFIX" "1" "January 2021" "" ""
.TH "NPM\-PREFIX" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-prefix\fR \- Display prefix
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-PROFILE" "1" "January 2021" "" ""
.TH "NPM\-PROFILE" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-profile\fR \- Change settings on your registry profile
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-PRUNE" "1" "January 2021" "" ""
.TH "NPM\-PRUNE" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-prune\fR \- Remove extraneous packages
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-PUBLISH" "1" "January 2021" "" ""
.TH "NPM\-PUBLISH" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-publish\fR \- Publish a package
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-REBUILD" "1" "January 2021" "" ""
.TH "NPM\-REBUILD" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-rebuild\fR \- Rebuild a package
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-REPO" "1" "January 2021" "" ""
.TH "NPM\-REPO" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-repo\fR \- Open package repository page in the browser
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-RESTART" "1" "January 2021" "" ""
.TH "NPM\-RESTART" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-restart\fR \- Restart a package
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-ROOT" "1" "January 2021" "" ""
.TH "NPM\-ROOT" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-root\fR \- Display npm root
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-RUN\-SCRIPT" "1" "January 2021" "" ""
.TH "NPM\-RUN\-SCRIPT" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-run-script\fR \- Run arbitrary package scripts
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-SEARCH" "1" "January 2021" "" ""
.TH "NPM\-SEARCH" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-search\fR \- Search for packages
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-SET\-SCRIPT" "1" "January 2021" "" ""
.TH "NPM\-SET\-SCRIPT" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-set-script\fR \- Set tasks in the scripts section of package\.json
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-SHRINKWRAP" "1" "January 2021" "" ""
.TH "NPM\-SHRINKWRAP" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-shrinkwrap\fR \- Lock down dependency versions for publication
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-STAR" "1" "January 2021" "" ""
.TH "NPM\-STAR" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-star\fR \- Mark your favorite packages
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-STARS" "1" "January 2021" "" ""
.TH "NPM\-STARS" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-stars\fR \- View packages marked as favorites
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-START" "1" "January 2021" "" ""
.TH "NPM\-START" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-start\fR \- Start a package
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-STOP" "1" "January 2021" "" ""
.TH "NPM\-STOP" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-stop\fR \- Stop a package
.SS Synopsis
+60 -14
View File
@@ -1,4 +1,4 @@
.TH "NPM\-TEAM" "1" "January 2021" "" ""
.TH "NPM\-TEAM" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-team\fR \- Manage organization teams and team memberships
.SS Synopsis
@@ -12,8 +12,6 @@ npm team add <scope:team> <user>
npm team rm <scope:team> <user>
npm team ls <scope>|<scope:team>
npm team edit <scope:team>
.fi
.RE
.SS Description
@@ -22,24 +20,70 @@ Used to manage teams in organizations, and change team memberships\. Does not
handle permissions for packages\.
.P
Teams must always be fully qualified with the organization/scope they belong to
when operating on them, separated by a colon (\fB:\fP)\. That is, if you have a \fBwombats\fP team in a \fBwisdom\fP organization, you must always refer to that team as \fBwisdom:wombats\fP in these commands\.
when operating on them, separated by a colon (\fB:\fP)\. That is, if you have a
\fBnewteam\fP team in an \fBorg\fP organization, you must always refer to that team
as \fB@org:newteam\fP in these commands\.
.P
If you have two\-factor authentication enabled in \fBauth\-and\-writes\fP mode, then you can provide a code from your authenticator with \fB[\-\-otp <otpcode>]\fP\|\. If you don't include this then you will be prompted\.
If you have two\-factor authentication enabled in \fBauth\-and\-writes\fP mode, then
you can provide a code from your authenticator with \fB[\-\-otp <otpcode>]\fP\|\.
If you don't include this then you will be prompted\.
.RS 0
.IP \(bu 2
create / destroy:
Create a new team, or destroy an existing one\. Note: You cannot remove the \fBdevelopers\fP team, <a href="https://docs\.npmjs\.com/about\-developers\-team" target="_blank">learn more\.</a>
Create a new team, or destroy an existing one\. Note: You cannot remove the
\fBdevelopers\fP team, <a href="https://docs\.npmjs\.com/about\-developers\-team" target="_blank">learn more\.</a>
Here's how to create a new team \fBnewteam\fP under the \fBorg\fP org:
.P
.RS 2
.nf
npm team create @org:newteam
.fi
.RE
You should see a confirming message such as: \fB+@org:newteam\fP once the new
team has been created\.
.IP \(bu 2
add / rm:
Add a user to an existing team, or remove a user from a team they belong to\.
add:
Add a user to an existing team\.
Adding a new user \fBusername\fP to a team named \fBnewteam\fP under the \fBorg\fP org:
.P
.RS 2
.nf
npm team add @org:newteam username
.fi
.RE
On success, you should see a message: \fBusername added to @org:newteam\fP
.IP \(bu 2
rm:
Using \fBnpm team rm\fP you can also remove users from a team they belong to\.
Here's an example removing user \fBusername\fP from \fBnewteam\fP team
in \fBorg\fP organization:
.P
.RS 2
.nf
npm team rm @org:newteam username
.fi
.RE
Once the user is removed a confirmation message is displayed:
\fBusername removed from @org:newteam\fP
.IP \(bu 2
ls:
If performed on an organization name, will return a list of existing teams
under that organization\. If performed on a team, it will instead return a list
of all users belonging to that particular team\.
.IP \(bu 2
edit:
Edit a current team\.
Here's an example of how to list all teams from an org named \fBorg\fP:
.P
.RS 2
.nf
npm team ls @org
.fi
.RE
Example listing all members of a team named \fBnewteam\fP:
.P
.RS 2
.nf
npm team ls @org:newteam
.fi
.RE
.RE
.SS Details
@@ -47,9 +91,9 @@ Edit a current team\.
\fBnpm team\fP always operates directly on the current registry, configurable from
the command line using \fB\-\-registry=<registry url>\fP\|\.
.P
In order to create teams and manage team membership, you must be a \fIteam admin\fR
under the given organization\. Listing teams and team memberships may be done by
any member of the organizations\.
You must be a \fIteam admin\fR to create teams and manage team membership, under
the given organization\. Listing teams and team memberships may be done by
any member of the organization\.
.P
Organization creation and management of team admins and \fIorganization\fR members
is done through the website, not the npm CLI\.
@@ -61,6 +105,8 @@ use the \fBnpm access\fP command to grant or revoke the appropriate permissions\
.IP \(bu 2
npm help access
.IP \(bu 2
npm help config
.IP \(bu 2
npm help registry
.RE
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-TEST" "1" "January 2021" "" ""
.TH "NPM\-TEST" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-test\fR \- Test a package
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-TOKEN" "1" "January 2021" "" ""
.TH "NPM\-TOKEN" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-token\fR \- Manage your authentication tokens
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-UNINSTALL" "1" "January 2021" "" ""
.TH "NPM\-UNINSTALL" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-uninstall\fR \- Remove a package
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-UNPUBLISH" "1" "January 2021" "" ""
.TH "NPM\-UNPUBLISH" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-unpublish\fR \- Remove a package from the registry
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-UNSTAR" "1" "January 2021" "" ""
.TH "NPM\-UNSTAR" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-unstar\fR \- Remove an item from your favorite packages
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-UPDATE" "1" "January 2021" "" ""
.TH "NPM\-UPDATE" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-update\fR \- Update packages
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-VERSION" "1" "January 2021" "" ""
.TH "NPM\-VERSION" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-version\fR \- Bump a package version
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-VIEW" "1" "January 2021" "" ""
.TH "NPM\-VIEW" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-view\fR \- View registry info
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-WHOAMI" "1" "January 2021" "" ""
.TH "NPM\-WHOAMI" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm-whoami\fR \- Display npm username
.SS Synopsis
+2 -2
View File
@@ -1,4 +1,4 @@
.TH "NPM" "1" "January 2021" "" ""
.TH "NPM" "1" "February 2021" "" ""
.SH "NAME"
\fBnpm\fR \- javascript package manager
.SS Synopsis
@@ -10,7 +10,7 @@ npm <command> [args]
.RE
.SS Version
.P
7\.5\.0
7\.5\.1
.SS Description
.P
npm is the package manager for the Node JavaScript platform\. It puts
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPX" "1" "January 2021" "" ""
.TH "NPX" "1" "February 2021" "" ""
.SH "NAME"
\fBnpx\fR \- Run a command from a local or remote npm package
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "FOLDERS" "5" "January 2021" "" ""
.TH "FOLDERS" "5" "February 2021" "" ""
.SH "NAME"
\fBfolders\fR \- Folder Structures Used by npm
.SS Description
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "INSTALL" "5" "January 2021" "" ""
.TH "INSTALL" "5" "February 2021" "" ""
.SH "NAME"
\fBinstall\fR \- Download and install node and npm
.SS Description
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPM\-SHRINKWRAP\.JSON" "5" "January 2021" "" ""
.TH "NPM\-SHRINKWRAP\.JSON" "5" "February 2021" "" ""
.SH "NAME"
\fBnpm-shrinkwrap.json\fR \- A publishable lockfile
.SS Description
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "NPMRC" "5" "January 2021" "" ""
.TH "NPMRC" "5" "February 2021" "" ""
.SH "NAME"
\fBnpmrc\fR \- The npm config files
.SS Description
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "PACKAGE\.JSON" "5" "January 2021" "" ""
.TH "PACKAGE\.JSON" "5" "February 2021" "" ""
.SH "NAME"
\fBpackage.json\fR \- Specifics of npm's package\.json handling
.SS Description
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "PACKAGE\-LOCK\.JSON" "5" "January 2021" "" ""
.TH "PACKAGE\-LOCK\.JSON" "5" "February 2021" "" ""
.SH "NAME"
\fBpackage-lock.json\fR \- A manifestation of the manifest
.SS Description
+3 -1
View File
@@ -1,4 +1,4 @@
.TH "CONFIG" "7" "January 2021" "" ""
.TH "CONFIG" "7" "February 2021" "" ""
.SH "NAME"
\fBconfig\fR \- More than you probably want to know about npm configuration
.SS Description
@@ -634,6 +634,8 @@ range (including SemVer\-major changes)\.
Allow a module to be installed as a direct dependency of itself\.
.IP \(bu 2
Allow unpublishing all versions of a published package\.
.IP \(bu 2
Allow conflicting peerDependencies to be installed in the root project\.
.RE
.P
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "DEVELOPERS" "7" "January 2021" "" ""
.TH "DEVELOPERS" "7" "February 2021" "" ""
.SH "NAME"
\fBdevelopers\fR \- Developer Guide
.SS Description
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "ORGS" "7" "January 2021" "" ""
.TH "ORGS" "7" "February 2021" "" ""
.SH "NAME"
\fBorgs\fR \- Working with Teams & Orgs
.SS Description
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "REGISTRY" "7" "January 2021" "" ""
.TH "REGISTRY" "7" "February 2021" "" ""
.SH "NAME"
\fBregistry\fR \- The JavaScript Package Registry
.SS Description
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "REMOVAL" "7" "January 2021" "" ""
.TH "REMOVAL" "7" "February 2021" "" ""
.SH "NAME"
\fBremoval\fR \- Cleaning the Slate
.SS Synopsis
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "SCOPE" "7" "January 2021" "" ""
.TH "SCOPE" "7" "February 2021" "" ""
.SH "NAME"
\fBscope\fR \- Scoped packages
.SS Description
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "SCRIPTS" "7" "January 2021" "" ""
.TH "SCRIPTS" "7" "February 2021" "" ""
.SH "NAME"
\fBscripts\fR \- How npm handles the "scripts" field
.SS Description
+1 -1
View File
@@ -1,4 +1,4 @@
.TH "WORKSPACES" "7" "January 2021" "" ""
.TH "WORKSPACES" "7" "February 2021" "" ""
.SH "NAME"
\fBworkspaces\fR \- Working with workspaces
.SS Description
+2 -1
View File
@@ -416,7 +416,7 @@ module.exports = cls => class IdealTreeBuilder extends cls {
await this[_add](options)
// triggers a refresh of all edgesOut
if (options.add && options.add.length || options.rm && options.rm.length)
if (options.add && options.add.length || options.rm && options.rm.length || this[_global])
tree.package = tree.package
process.emit('timeEnd', 'idealTree:userRequests')
}
@@ -1148,6 +1148,7 @@ This is a one-time fix-up, please be patient...
[_placeDep] (dep, node, edge, peerEntryEdge = null, peerPath = []) {
if (edge.to &&
!edge.error &&
!this[_explicitRequests].has(edge.name) &&
!this[_updateNames].includes(edge.name) &&
!this[_isVulnerable](edge.to))
return []
+3 -3
View File
@@ -233,7 +233,7 @@ module.exports = cls => class Reifier extends cls {
const actualOpt = this[_global] ? {
ignoreMissing: true,
global: true,
filter: (node, kid) => !node.isRoot && node !== node.root.target
filter: (node, kid) => this[_explicitRequests].size === 0 || !node.isProjectRoot
? true
: (node.edgesOut.has(kid) || this[_explicitRequests].has(kid)),
} : { ignoreMissing: true }
@@ -605,7 +605,7 @@ module.exports = cls => class Reifier extends cls {
tree: this.diff,
visit: diff => {
const node = diff.ideal
if (node && !node.isRoot && node.package.bundleDependencies &&
if (node && !node.isProjectRoot && node.package.bundleDependencies &&
node.package.bundleDependencies.length) {
maxBundleDepth = Math.max(maxBundleDepth, node.depth)
if (!bundlesByDepth.has(node.depth))
@@ -811,7 +811,7 @@ module.exports = cls => class Reifier extends cls {
dfwalk({
tree: this.diff,
leave: diff => {
if (!diff.ideal.isRoot)
if (!diff.ideal.isProjectRoot)
nodes.push(diff.ideal)
},
// process adds before changes, ignore removals
+15 -10
View File
@@ -247,7 +247,7 @@ class Node {
// true for packages installed directly in the global node_modules folder
get globalTop () {
return this.global && this.parent.isRoot
return this.global && this.parent.isProjectRoot
}
get workspaces () {
@@ -294,8 +294,11 @@ class Node {
const { name = '', version = '' } = this.package
// root package will prefer package name over folder name,
// and never be called an alias.
const myname = this.isRoot ? name || this.name : this.name
const alias = !this.isRoot && name && myname !== name ? `npm:${name}@` : ''
const { isProjectRoot } = this
const myname = isProjectRoot ? name || this.name
: this.name
const alias = !isProjectRoot && name && myname !== name ? `npm:${name}@`
: ''
return `${myname}@${alias}${version}`
}
@@ -339,14 +342,14 @@ class Node {
}
[_explain] (edge, seen) {
if (this.isRoot && !this.sourceReference) {
if (this.isProjectRoot && !this.sourceReference) {
return {
location: this.path,
}
}
const why = {
name: this.isRoot ? this.package.name : this.name,
name: this.isProjectRoot ? this.package.name : this.name,
version: this.package.version,
}
if (this.errors.length || !this.package.name || !this.package.version) {
@@ -384,7 +387,7 @@ class Node {
// and are not keeping it held in this spot anyway.
const edges = []
for (const edge of this.edgesIn) {
if (!edge.valid && !edge.from.isRoot)
if (!edge.valid && !edge.from.isProjectRoot)
continue
edges.push(edge)
@@ -453,7 +456,7 @@ class Node {
}
get isWorkspace () {
if (this.isRoot)
if (this.isProjectRoot)
return false
const { root } = this
const { type, to } = root.edgesOut.get(this.package.name) || {}
@@ -733,7 +736,9 @@ class Node {
// Linked targets that are disconnected from the tree are tops,
// but don't have a 'path' field, only a 'realpath', because we
// don't know their canonical location. We don't need their devDeps.
if (this.isTop && this.path && !this.sourceReference)
const { isTop, path, sourceReference } = this
const { isTop: srcTop, path: srcPath } = sourceReference || {}
if (isTop && path && (!sourceReference || srcTop && srcPath))
this[_loadDepType](this.package.devDependencies, 'dev')
const pd = this.package.peerDependencies
@@ -902,8 +907,8 @@ class Node {
if (this.isLink)
return node.isLink && this.target.matches(node.target)
// if they're two root nodes, they're different if the paths differ
if (this.isRoot && node.isRoot)
// if they're two project root nodes, they're different if the paths differ
if (this.isProjectRoot && node.isProjectRoot)
return this.path === node.path
// if the integrity matches, then they're the same.
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@npmcli/arborist",
"version": "2.1.0",
"version": "2.1.1",
"description": "Manage node_modules trees",
"dependencies": {
"@npmcli/installed-package-contents": "^1.0.5",
@@ -20,7 +20,7 @@
"npm-package-arg": "^8.1.0",
"npm-pick-manifest": "^6.1.0",
"npm-registry-fetch": "^9.0.0",
"pacote": "^11.2.3",
"pacote": "^11.2.4",
"parse-conflict-json": "^1.1.1",
"promise-all-reject-late": "^1.0.0",
"promise-call-limit": "^1.0.1",
@@ -55,7 +55,7 @@
"postversion": "npm publish",
"prepublishOnly": "git push origin --follow-tags",
"eslint": "eslint",
"lint": "npm run eslint -- \"lib/**/*.js\"",
"lint": "npm run eslint -- \"lib/**/*.js\" \"test/arborist/*.js\" \"test/*.js\"",
"lintfix": "npm run lint -- --fix",
"benchmark": "node scripts/benchmark.js",
"benchclean": "rm -rf scripts/benchmark/*/"
+1 -1
View File
@@ -103,7 +103,7 @@ class FetcherBase {
this.npmBin = opts.npmBin || 'npm'
// command to install deps for preparing
this.npmInstallCmd = opts.npmInstallCmd || [ 'install' ]
this.npmInstallCmd = opts.npmInstallCmd || [ 'install', '--force' ]
// XXX fill more of this in based on what we know from this.opts
// we explicitly DO NOT fill in --tag, though, since we are often
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "pacote",
"version": "11.2.3",
"version": "11.2.4",
"description": "JavaScript package downloader",
"author": "Isaac Z. Schlueter <i@izs.me> (https://izs.me)",
"bin": {
+2 -4
View File
@@ -1,5 +1,5 @@
{
"version": "7.5.0",
"version": "7.5.1",
"name": "npm",
"description": "a package manager for JavaScript",
"keywords": [
@@ -42,14 +42,13 @@
"./package.json": "./package.json"
},
"dependencies": {
"@npmcli/arborist": "^2.1.0",
"@npmcli/arborist": "^2.1.1",
"@npmcli/ci-detect": "^1.2.0",
"@npmcli/config": "^1.2.8",
"@npmcli/run-script": "^1.8.1",
"abbrev": "~1.1.1",
"ansicolors": "~0.3.2",
"ansistyles": "~0.1.3",
"aproba": "^2.0.0",
"archy": "~1.0.0",
"byte-size": "^7.0.0",
"cacache": "^15.0.5",
@@ -119,7 +118,6 @@
"abbrev",
"ansicolors",
"ansistyles",
"aproba",
"archy",
"byte-size",
"cacache",
Loaded 100 of 104 files, more files were not shown because too many files have changed in this diff. Show more