javascript - 使用 node cli 工具作为库 (trim3)

标签 javascript node.js npm ffmpeg command-line-interface

我找到了以下库,我想在我自己的 nodejs 文件中使用它:https://github.com/kyr0/trimp3

但是,它是一个 cli 工具,我想将它用作库。

我怎么能在我自己的nodejs代码中使用它,并以编程方式使用它(也就是说,不从我的nodejs文件中将它作为cli工具执行,而是直接在 Node 中执行)。

我希望你明白我的意思。

最佳答案

我同意您可以将代码复制到自己的模块中并根据需要使用它的评论,但是如果您真的想添加此依赖项,则可以在本地安装它

$ npm install trimp3 --save

然后要求它具有 libtrimp3.js 的完整路径,如下所示:
const trimp = require('./node_modules/trimp3/libtrimp3.js')

您需要根据调用它的位置调整该路径,以确保您拥有正确的相对路径。

** 更新 **

根据评论,图书馆期望信息通过 CLI 进入是一个很好的观点。不过,这实际上也不难伪造,因为 process.argv 只是一个数组,但如果你将它用于其他事情,你可能必须考虑到这一点。在需要 trimp3 之前(因为 process.argv 的解析是在文件加载时发生的,很遗憾),您的调用代码必须将数组设置为 trimp3 期望的值。它在 2 处对数组进行切片,因此它将跳过数组中的前两项,剩余的数组将按如下方式解析:
mp3In: argv[0],
mp3Out: argv[1],
beginTime: argv[2],
endTime: argv[3]

所以如果你要设置 process.argv = ['', '', 'path/to/input', 'path/to/output', 'beginTime', 'endTime']在要求 trimp3 之前,您会在球场上。

所有这一切都可以追溯到我最初同意的评论,即最好不要使用这个库,而是从中学习以构建自己的模块。

关于javascript - 使用 node cli 工具作为库 (trim3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45437587/

相关文章:

node.js - 如何在新的包名称规则后检查 npm 包名称的可用性?

javascript - Rails 4 ajax 在点击提交后不刷新

javascript - 复杂的 promise 和 for 循环

javascript - 将延迟处理程序附加到函数外部的嵌套 AJAX 调用

node.js - Multer 和 Express/Node 文件上传

javascript - 如何在 React 中显示来自 django-rest-framework 的错误消息

reactjs - 无法安装 @typescript-eslint/eslint-plugin

node.js - 如何将 NPM 模块(十进制)添加到 ArangoDB 以进行 ACID 事务

javascript - 设置视口(viewport)、初始比例和设备宽度不会根据设备宽度调整大小

javascript - Aptana "Missing semicolon"警告