PATH:
usr
/
lib
/
node_modules
/
npm
/
lib
/
utils
const { dirname } = require('path') const { commands } = require('./cmd-list') const localeCompare = require('@isaacs/string-locale-compare')('en') module.exports = async (npm) => { const usesBrowser = npm.config.get('viewer') === 'browser' ? ' (in a browser)' : '' return `npm <command> Usage: npm install install all the dependencies in your project npm install <foo> add the <foo> dependency to your project 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>${usesBrowser} npm help npm more involved overview${usesBrowser} All commands: ${await allCommands(npm)} Specify configs in the ini-formatted file: ${npm.config.get('userconfig')} or on the command line via: npm <command> --key=value More configuration info: npm help config Configuration fields: npm help 7 config npm@${npm.version} ${dirname(dirname(__dirname))}` } const allCommands = async (npm) => { if (npm.config.get('long')) { return usages(npm) } return ('\n ' + wrap(commands)) } const wrap = (arr) => { const out = [''] const line = !process.stdout.columns ? 60 : Math.min(60, Math.max(process.stdout.columns - 16, 24)) let l = 0 for (const c of arr) { if (out[l].length + c.length + 2 < line) { out[l] += ', ' + c } else { out[l++] += ',' out[l] = c } } return out.join('\n ').slice(2) } const usages = async (npm) => { // return a string of <command>: <usage> let maxLen = 0 const set = [] for (const c of commands) { const cmd = await npm.cmd(c) set.push([c, cmd.usage]) maxLen = Math.max(maxLen, c.length) } return set.sort(([a], [b]) => localeCompare(a, b)) .map(([c, usage]) => `\n ${c}${' '.repeat(maxLen - c.length + 1)}${ (usage.split('\n').join('\n' + ' '.repeat(maxLen + 5)))}`) .join('\n') }
[-] ping.js
[edit]
[-] explain-eresolve.js
[edit]
[-] completion.sh
[edit]
[-] otplease.js
[edit]
[-] log-file.js
[edit]
[-] audit-error.js
[edit]
[-] format-search-stream.js
[edit]
[-] exit-handler.js
[edit]
[-] pulse-till-done.js
[edit]
[-] tar.js
[edit]
[-] open-url.js
[edit]
[-] web-auth.js
[edit]
[+]
..
[-] reify-finish.js
[edit]
[-] read-user-info.js
[edit]
[-] ansi-trim.js
[edit]
[-] get-identity.js
[edit]
[-] explain-dep.js
[edit]
[-] open-url-prompt.js
[edit]
[-] replace-info.js
[edit]
[-] display.js
[edit]
[-] reify-output.js
[edit]
[-] validate-lockfile.js
[edit]
[-] is-windows.js
[edit]
[-] cmd-list.js
[edit]
[-] format-bytes.js
[edit]
[+]
config
[+]
completion
[-] log-shim.js
[edit]
[-] did-you-mean.js
[edit]
[-] queryable.js
[edit]
[-] timers.js
[edit]
[-] npm-usage.js
[edit]
[-] error-message.js
[edit]
[-] update-notifier.js
[edit]