今天写了个demo学习Node编写命令行工具,遇到这么一个问题:
首先我的文件结构是:
这个命令行很简单,我期望执行命令时,获取当前执行命令行时的路径,也就是 pwd
命令的效果。我写了好几种方式:
我现在是在当前目录下的 testDir 目录下执行命令行,按照我想的预期,结果应该是和 pwd
命令一致:
但是上面的六种方式,甚至连使用Node执行 pwd 命令输出的都是:
为什么会出现这种结果呢?请问要怎么样才能达到我的目的呢?
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
。谢谢