【问题标题】:How to use node modules from command line?如何从命令行使用节点模块?
【发布时间】:2020-09-23 04:52:32
【问题描述】:

我找不到任何直接的说明。我已经安装了 node.js 和 npm,然后在它自己的文件夹 D:\node_stuff 中创建了一个项目,然后通过 cmd (Windows 10) 在那里 cd'd 并运行 npm install expressnpm init。我正在尝试使用gifify,并通过npm 而不是brew(ffmpeg、imagemagick、giflossy)安装了它的依赖项。

  • gifify -h -> 'gifify' 未被识别为内部或外部命令, 可运行的程序或批处理文件。
  • node gifify -h -> 错误:找不到模块 'D:\node_stuff\gifify'
  • cd node_modules -> node gifify -h -> 没有任何反应

我做错了什么?我什至在哪里看 - 所有简单搜索的教程只显示如何安装包或构建项目 - 我不需要构建任何东西,只需要使用这个模块。

【问题讨论】:

  • 在 Mac/Linux 上,因为您在本地而不是全局安装了该软件包,您通常会使用 npx 来运行它,例如npx gifify -h。不确定这在 Windows 上是否可用,但请尝试。
  • @jarmod 很好,它起作用了-我会看看其余的功能是否起作用,然后您可以将其发布为答案。奇怪的是有多篇文章没有提到它。
  • 添加到路径需要npm i gifify -g,它在readme

标签: node.js npm node-modules


【解决方案1】:

你可以运行npx gifify -h

一般来说,安装 NPM 包时有两种选择:

  1. 全局安装,例如npm install gifify -g
  2. 在本地安装,例如npm install gifify(或 npm install,如果包在 package.json 中列出)

某些软件包在安装时还会安装命令行脚本。对于全局安装的软件包,该 CLI 脚本安装到 PATH 中的位置,因此您可以简单地运行裸命令,例如gifify -h。对于本地安装的软件包,该 CLI 脚本本地安装在 node_modules 文件夹下,该文件夹不在您的 PATH 中。要运行这样的脚本,您可以使用 NPM 包执行程序 npx,例如 npx gifify -h。这实质上是从node_modules/.bin 文件夹执行本地脚本。

如果您的包脚本,例如gifify,依赖于第三方可执行文件,例如 FFMPEG 和 ImageMagick,然后我会将它们安装为常规应用程序(这会将它们放在您的 PATH 中)。

【讨论】:

  • 遇到了其他麻烦,但其他用户可能也会遇到:使用的模块无法通过节点“找到”某些包。例如,npx gifify clip.mp4 -o clip.gif -。 “找不到ffmpeg。它安装了吗?”是的,通过 npm install ffmpeg,本地和全球 (-g)。解决方案是choco install ffmpeg。现在另一个问题:“找不到转换。它安装了吗?” choco这次不行,npm也不行;还有其他“技巧”吗?
  • 我假设 gifify 正在执行 ffmpeg/convert 并且因为它们不在您的 PATH 上,所以无法执行它们。 gifify 包和其他包不模仿 npx 的行为。您可以简单地用“node_modules\.bin”补充您的 PATH 环境变量,然后执行 gifify -hnpx gifiy -h(假设 ffmpeg 在 node_modules\.bin 中)。就我个人而言,我可能会将 FFMPEG 和 ImageMagick 作为独立的可执行文件在全球范围内安装,而不是通过 NPM,它们会被添加到我的 PATH 中。另外,请注意有一个原生 Windows 转换程序,它是一个 NTFS 实用程序。
  • gifify 现在在重启 cmd 后运行,但 node_modules/convert 仍然找不到;是否有“使用调试信息运行”标志? “未找到”并没有告诉我太多
  • 相信 convert 是 ImageMagick 的一部分。
  • 是的,从here 安装 ImageMagick 有效,最后我遇到了来自程序本身的错误 - 但不是本问答的主题。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-11
  • 2018-03-28
  • 1970-01-01
  • 1970-01-01
  • 2014-11-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多