【发布时间】:2012-08-27 15:17:21
【问题描述】:
我正在创建一个节点命令行界面。全局安装,使用bin文件执行。
我计划在我正在处理的文件的根目录中打开一个命令窗口,然后只运行命令但是我无法确定当前的工作目录,因为process.cwd() 正在返回节点的目录包裹。我最初假设,由于代码是使用批处理文件作为包装器执行的(这就是 bin 文件在开始时没有节点的情况下执行的方式),所以这是不可能的,但 coffee-script 设法做到了。看了下coffee-script源码,没看懂(经验不够)。
要自己测试它,请使用此 package.json 文件创建一个包:
{
"name": "test-package",
"version": "1.0.0",
"bin": {
"test-package": "./bin/test-package"
},
"main": "/lib/test"
}
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');
任何人都可以对此有所了解。
然后尝试获取 lib/test 中的命令行目录。
【问题讨论】:
标签: node.js command-line npm