我正在创建一个节点命令行界面.它全局安装并使用bin文件执行.
我计划在我正在处理的文件的根目录下打开一个命令窗口,然后运行该命令,但是我无法确定当前工作目录,因为process.cwd()它返回了节点包的目录.我最初假设,因为代码是使用批处理文件作为包装器执行的(这是bin文件在开始时没有节点就可以执行的方式),所以这是不可能的,但是咖啡脚本设法做到了.我看了一下咖啡脚本来源,但无法遵循它(没有足够的经验).
要自己测试它,请使用此package.json文件创建一个包:
{
"name": "test-package",
"version": "1.0.0",
"bin": {
"test-package": "./bin/test-package"
},
"main": "/lib/test"
}
Run Code Online (Sandbox Code Playgroud)
bin中的这个测试包文件:
#!/usr/bin/env node
var path = require('path');
var fs = require('fs');
var lib = path.join(path.dirname(fs.realpathSync(__filename)), '../lib');
require(lib + '/test');
Run Code Online (Sandbox Code Playgroud)
任何人都可以对此有所了解.
然后尝试获取lib/test中的命令行目录.
我正在开发一个命令行节点模块,并希望能够通过网站上的链接启动它.
我想注册一个自定义协议my-module://,使链接具有以下格式:my-module://action:some-action点击它们将启动节点包.
如果没有这个节点API(我确定不会有),那么有没有办法通过调用系统命令从节点做到这一点?
它必须适用于Windows,Linux和MacOS.