打印所有已安装的 node.js 模块的列表

在我正在编写的 node.js 脚本中,我希望将所有 node.js 模块(使用 npm 安装)打印到命令行。我怎么能这么做?

console.log(__filename);


//now I want to print all installed modules to the command line. How can I do this?
192660 次浏览

使用 Npm 是(甚至有 json 输出)

根据剧本:

Js:

function npmls(cb) {
require('child_process').exec('npm ls --json', function(err, stdout, stderr) {
if (err) return cb(err)
cb(null, JSON.parse(stdout));
});
}
npmls(console.log);

运行:

> node test.js
null { name: 'x11', version: '0.0.11' }

所有全球安装的第三方模块列表,在控制台中写入:

 npm -g ls

如果你只对全球安装的软件包感兴趣而没有完整的树,那么:

npm -g ls --depth=0

或局部(省略 -g) :

npm ls --depth=0

for package in `sudo npm -g ls --depth=0 --parseable`; do
printf "${package##*/}\n";
done

一般来说,有两种列出已安装包的方法-通过命令行接口(CLI)或在应用程序中使用 空气污染指数

这两个命令都将以树形结构将安装的所有软件包版本及其依赖项打印到 stdout


CLI

npm list

使用 -g(global)标志列出所有全局安装的包。使用 --depth=0标志只列出顶级包,而不列出它们的依赖项。


空气污染指数

在您的例子中,您希望在脚本中运行它,因此需要使用 API。来自文件:

npm.commands.ls(args, [silent,] callback)

除了打印到 stdout之外,数据还将被传递到回调中。

在任何操作系统中

npm -g list

就是这样

为什么不从 package.jsondependencies抓住他们?

当然,这只会给你你实际保存的,但你应该这样做无论如何。

console.log(Object.keys(require('./package.json').dependencies));

到了2021年底,几乎没有什么明显的方法可以做到这一点,上面的答案只有一个,那就是一个完整的清单。

Js 文档实际上已经很好地解释了这个问题,这是一个主要命令的集合列表。

所有命令将运行已安装模块的列表 本地 。为了运行全局级别的 只需在语句的末尾添加一个 -g标志。

  1. 查看所有已安装的 npm 包的版本 包括他们的依赖关系

    ❯ npm list
    
    
    >>> /Users/joe/dev/node/cowsay
    └─┬ cowsay@1.3.1
    ├── get-stdin@5.0.1
    ├─┬ optimist@0.6.1
    │ ├── minimist@0.0.10
    │ └── wordwrap@0.0.3
    ├─┬ string-width@2.1.1
    │ ├── is-fullwidth-code-point@2.0.0
    │ └─┬ strip-ansi@4.0.0
    │   └── ansi-regex@3.0.0
    └── strip-eof@1.0.0
    
  2. 只拿你的顶级包裹

    npm list --depth=0
    
  3. 通过指定包的名称获取特定包的版本。

    npm list <package-name>
    
  4. 查看 npm 存储库中包的最新可用版本

    npm view <package-name> version
    
  5. 使用@语法安装 npm 包的旧版本

    Npm install@ Npm install Cowsay@1.2.0

    全球包裹

    Npm install-g webpack@4.16.4

  6. 列出包的所有早期版本

    npm view cowsay versions
    [ '1.0.0',
    '1.0.1',
    '1.0.2',
    '1.0.3',
    '1.1.0',
    '1.1.1',
    '1.1.2',
    '1.1.3',
    ....
    ]
    

更新所有 Node.js 依赖项

  1. 安装新的次要版本或补丁版本

     npm update
    
  2. 安装新的辅助版本或补丁版本,但不要更新 package.json

     npm update --no-save
    
  3. 为了发现软件包的新版本,这将在一个存储库中列出一些过时的软件包,这些软件包已经很长时间没有更新了

      npm outdated
    

其中一些更新是主要版本。运行 npm 更新不会更新那些。主要版本从来不会以这种方式更新,因为它们(根据定义)引入了重大更改,而 npm 希望为您节省麻烦。

要将所有软件包更新到一个新的主版本,请在全球范围内安装 npm-check-update 软件包:

npm install -g npm-check-updates
ncu -u

这将把 package.json 文件中的所有版本提示升级到依赖项和 devDependency,这样 npm 就可以安装新的主版本了


发展依赖

在开发依赖项中安装。

npm install <package-name> -D
npm install <package-name> --save-dev # same as above

避免在 Productionwith 中安装这些开发依赖项

npm install --production

卸载 npm 包

npm uninstall <package-name>
npm uninstall -g <package-name> # globally uninstall
  1. 卸载一个包并 * * 删除 package.json * * 中的引用

      npm uninstall <package-name> -S
    npm uninstall <package-name> --save # same as above
    

一些带有全局标志示例的命令。

npm list -g
npm list --depth=0 -g
npm list <package-name> -g
npm view <package-name> version -g

附加命令

文件