node.js命令行应用程序未运行

node.js命令行应用程序未运行,node.js,Node.js,我正在构建一个node js命令行包,当我尝试使用该命令将我的一个项目链接到命令行项目时,它试图像在windows上打开js文件一样打开它,而不是作为node js应用程序打开它 这是命令行project package.json: { "name": "sitemap-generator", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"

我正在构建一个node js命令行包,当我尝试使用该命令将我的一个项目链接到命令行项目时,它试图像在windows上打开js文件一样打开它,而不是作为node js应用程序打开它

这是命令行project package.json:

{
  "name": "sitemap-generator",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "commander": "^2.19.0",
    "esm": "^3.0.84",
    "fs": "0.0.1-security"
  },
  "bin": {
    "smg": "./cli.js"
  },
  "engines": {
    "node": ">=9.5"
  }
}
以及index.js文件:

'use strict';

const program = require('commander');

program
    .version('0.0.1')
    .description('Contact management system');

program.parse(process.argv);
错误:


我相信您要运行的命令是
节点索引.js[参数]
而不是直接打开js文件。

我相信您要运行的命令是
节点索引.js[参数]
而不是直接打开js文件。

答案是在cli.js文件的顶部添加以下行:
\/usr/bin/env节点

因此,该文件如下所示:

#!/usr/bin/env node

const program = require('commander');

program
    .version('0.0.1')
    .description('Contact management system');

program.parse(process.argv);

答案是在cli.js文件的顶部添加以下行:
#/usr/bin/env节点

因此,该文件如下所示:

#!/usr/bin/env node

const program = require('commander');

program
    .version('0.0.1')
    .description('Contact management system');

program.parse(process.argv);

但我正在尝试运行此命令以抛出我的另一个项目,假设我是一名经验丰富的javascript开发人员。在这种情况下,我建议您从
模块中的index.js导出您试图调用的函数。exports
并直接从调用该函数的应用程序运行该函数。因此,我的index.js现在是
module.exports=要求(“./bin/cli”),这没有帮助。但我正在尝试运行此命令以抛出我的另一个项目,假设我是一名经验丰富的javascript开发人员。在这种情况下,我建议您从
模块中的index.js导出您试图调用的函数。exports
并直接从调用该函数的应用程序运行该函数。因此,我的index.js现在是
module.exports=要求(“./bin/cli”),这没有帮助。