Node.js 带有两个命令的单个npm包
我有一个由以下JSON描述的node.js包:Node.js 带有两个命令的单个npm包,node.js,package.json,Node.js,Package.json,我有一个由以下JSON描述的node.js包: "name": "mycommand", "main": "index.js", "bin": { "mycommand": "./index.js", index.js文件包含以下代码: #!/usr/bin/env node const app = require('./src/app
"name": "mycommand",
"main": "index.js",
"bin": {
"mycommand": "./index.js",
index.js
文件包含以下代码:
#!/usr/bin/env node
const app = require('./src/app.js')
const { Logger } = require('./utils/Logger')
app.init()
而app.js
包含一个基于yargs的命令行工具的代码
现在,我想在这个包中添加第二个命令,但我不知道该如何继续,因为只有一个“main”
有人在某处有例子吗?也许你在寻找
脚本而不是bin
现在,我想在这个包中添加第二个命令,但我不知道该如何继续,因为只有一个“main”
bin
映射与主文件无关
您的命令被符号链接,您只需添加更多:
"bin": {
"mycommand": "./index.js",
"my-other-command": "./other-command.js",
或者,您可以使用mycommand
并使用process.argv
解析脚本app.js中的参数:
不,我认为“脚本”与我的情况无关,因为我在运行node.js应用程序时没有尝试执行某些命令。我试图构建的是一组命令行工具(将与npx一起运行),它们被分组在一个node.js包中。所以我真的认为“bin”是合适的字段。但是,如果我的包中有多个命令行工具,我不知道“main”属性的作用。@LiohAumain
与bin
没有任何关系-您可以像我的示例中那样添加更多的文件。那么,这是否意味着我可以省略“main”属性,因为它在我的情况下是无用的?或者我必须保持“main”指向“index.js”并在该文件中添加我正在构建的所有命令行工具的所有.js的“require”命令吗?@LiohAu我想是的,就像那样。如果npm显示警告,您可以添加一个空的JS脚本作为主脚本