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

时间:2019-01-07 09:59:10

标签: node.js

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

这是命令行项目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);

错误:

enter image description here

2 个答案:

答案 0 :(得分:1)

我相信您要运行的命令是node index.js [arguments],而不是直接打开js文件。

答案 1 :(得分:1)

答案是将以下行添加到cli.js文件的顶部:#!/usr/bin/env node

因此文件如下所示:

#!/usr/bin/env node

const program = require('commander');

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

program.parse(process.argv);

@mklement0 - #!/usr/bin/env node is an instance of a shebang line...