【问题标题】:node.js Command Line Interface app on windowsWindows 上的 node.js 命令行界面应用程序
【发布时间】:2019-06-27 16:38:13
【问题描述】:

我正在使用 NodeJs 创建一个简单的 CLI(命令行界面)应用程序,涉及两个文件:

package.json:

index.js

我想向 STDOUT 打印“hello world”,并且在运行命令 $ node index.js

时它正在工作

但我想通过命令 test 全局使用它。所以,我在 package.json 中放了一个 bin 条目。然后使用npm link . 构建应用程序。但是当我运行“测试”命令时,Windows 显示以下错误:

如何在单独的应用中使用console.log

谢谢!

【问题讨论】:

  • 我认为 npm 会读取 shebang 以在 Windows 上创建正确的 .bat (.cmd?) - 尝试将 #!/usr/bin/env node 添加为 index.js 的第一行。

标签: node.js npm command-line


【解决方案1】:

package.json文件中,需要编写如下代码:

"name" : "test",
"version": "1.0.0",
"scripts": {
   "start": "node index.js",
   "build": "webpack",
},
...
...

之后,使用命令npm start 运行应用程序。

【讨论】:

  • 是的,但这不是我想要的。 :( 我只想用 cmd "test" 运行脚本
  • 不行,需要写npm
【解决方案2】:

1- 在根文件夹中创建 bin 文件夹并将您的 index.js 放在 bin 中。 在 index.js 的第一行输入 shebang 代码:

bin/index.js

#!/usr/bin/env node

console.log("hello world");

2- 将以下代码添加到 package.json 文件中。

"bin": {
   "test": "./bin/index.js" //this is relative path
} 

3-最后在命令行上运行这段代码

npm link

现在您在命令行中运行“test”,它将记录“hello world”

注意:注意我上面提到的相对路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-18
    • 1970-01-01
    • 2013-03-13
    • 2010-11-23
    • 2021-06-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-24
    相关资源
    最近更新 更多