即使在全局安装 tslint、typescript 之后,tslint CLI 似乎也无法在 macOS 上的 i-term zsh 上运行。当我尝试使用它时,它说
zsh: command not found: tslint
但是当添加到 Node 项目的打包json中时
"fix": "tslint --fix --project ."
然后运行
yarn fix
它似乎运行正常。我尝试通过键入查找 npm 全局前缀
npm config get prefix
它指向一个
usr/local/Cellar/node/10.7.0
所有其他二进制文件(如 node)都可以工作,并且 bin 文件夹中有 tslint,这意味着它实际上应该可以工作,但似乎没有。即使是 jest CLI 似乎也不起作用,但当添加到项目的 package.json 时,它可以正常工作。
我不明白为什么这不起作用。任何帮助将不胜感激。
最佳答案
我又遇到了这个问题,因为它困扰着我,所以一心想解决它。这个答案可能类似于 shell 的 A、B、C,但我相信它会对像我这样的初学者有所帮助。
因此,当我们在终端(基本上是 CLI)上安装任何可执行的库时,shell 需要知道该二进制文件的存储位置。简而言之,我们需要告诉我们的 shell,假设有一个名为 sapphire
的 CLI 您想在您的终端上运行,shell 必须知道要运行的 sapphire 的二进制文件在哪里. Shell 通过 .zshrc
(如果您使用 zsh 作为 shell)或 .bashrc
(如果你使用 bash 作为你的 shell) 文件在你的主目录中。
为了知道哪些路径包含在 $PATH
中(意思是在命令运行的情况下你的 shell 在哪里),运行这个
echo $PATH
并检查 npm 全局安装包的位置。这很容易,因为 npm 会提示安装文件的位置。一个例子就是这个
现在简单地检查一下 $PATH
是否包含这个路径(通过这个路径,我的意思是 grunt 二进制文件安装的位置 /usr/local/Cellar/node/10.7.0/bin/grunt
。如果有,grunt
将正常工作,如果此路径未包含在 .zshrc/.bashrc 文件的 $PATH 变量中,您将得到类似
zsh: command not found: grunt
解决此问题所需要做的就是将此路径包含在 $PATH 中,一切顺利。
如何修改.zshrc
?
使用 vim 或 subl 打开文件。进行必要的更改。关闭终端并再次打开或通过运行 $SHELL
重新启动 shell。事情会得到反射(reflect)。
关于javascript - tslint CLI 和 jest CLI 不适用于 iterm zsh macOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52686334/