[英]Problem when using process.cwd() in published npm package
我正在通过构建一个用于自动执行 Gerrit 提交的简单程序来尝试使用 cli 工具。 一切都在本地工作,但在将 package 发布到 npm 并在全球范围内安装后,它看起来process.cwd()
表现不同。 程序退出,但没有console.log()
。 即使是一个简单的console.log(process.cwd())
也会被忽略(再次在本地工作)。 运行全局安装的 npm package 时是否可以使用process.cwd()
?
console.log(process.cwd());
const getCurrentBranchName = (p = process.cwd()) => {
const gitHeadPath = `${p}/.git/HEAD`;
return fs.existsSync(gitHeadPath)
? fs.readFileSync(gitHeadPath, "utf-8").trim().split("/").pop()
: (console.log("not a git repo"), process.exit(0));
}
const currentBranch = getCurrentBranchName();
在本地运行时(使用node index
):
$ /Users/jpap/.npm-packages/lib/node_modules/gittest
$ not a git repo
process.cwd()
您问题中的代码和您描述的结果仅表明console.log()
调用未执行。
您可以通过将以下内容添加到代码顶部来轻松测试它:
console.log('My name is Inigo Montoya. You killed my father. Prepare to die!')
例如,您可以使用配置为剥离 console.log 调用的捆绑器(例如 Rollup)。
这很容易确认。 简单看npm安装版的代码:
npm root -g
找出全局包的安装位置。 对于非全局包,请查看node_modules
。我怀疑您会看到所有 console.log 语句都已删除。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.