Node写的命令行脚本如何获取和linux下pwd一致的结果
发布于 5 年前 作者 CocaColf 3151 次浏览 来自 问答

今天写了个demo学习Node编写命令行工具,遇到这么一个问题:

首先我的文件结构是:

微信截图_20190513203009.png

这个命令行很简单,我期望执行命令时,获取当前执行命令行时的路径,也就是 pwd 命令的效果。我写了好几种方式:

image.png

我现在是在当前目录下的 testDir 目录下执行命令行,按照我想的预期,结果应该是和 pwd 命令一致:

pwd.PNG

但是上面的六种方式,甚至连使用Node执行 pwd 命令输出的都是:

log.PNG

为什么会出现这种结果呢?请问要怎么样才能达到我的目的呢?

6 回复

package.json 中的命令会自动将当前的 pwd 设置为 package.json 所在目录,直接运行命令就不会有这个问题

因为你执行的是 npm/yarn 命令

他们都是先找到 package.json 所在的目录,然后再这里目录下执行命令

@shynome 明白了。谢谢。那么这种本地调试要怎么样达到这种效果呢?我查了一下没有 yarn link global这种用法

@axetroy 明白了。谢谢。那么这种本地调试要怎么样达到这种效果呢?我查了一下没有 yarn link global这种用法,所以就只能使用 yarn run <script>这种方式去运行

@shynome 啊我知道了,原来 yarn link会把这个命令行全局模块安装文件夹node_modules内,并创建符号链接(symbolic link,软链接),也就是加入环境变量 PATH。谢谢

@axetroy 啊我知道了,原来 yarn link会把这个命令行全局模块安装文件夹node_modules内,并创建符号链接(symbolic link,软链接),也就是加入环境变量 PATH。谢谢

回到顶部