javascript - tslint CLI 和 jest CLI 不适用于 iterm zsh macOS

标签 javascript node.js macos zsh tslint

即使在全局安装 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 会提示安装文件的位置。一个例子就是这个

enter image description here

现在简单地检查一下 $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/

相关文章:

c++ - OpenCV VideoWriter 花费的时间太长

javascript - 滚动无限移动文本

javascript - 消息 : This browser doesn't support the API's required to use the firebase SDK.(消息/不支持的浏览器)

node.js - 当与 webpack 捆绑在一起时,如何使 node.js 在没有 node_modules 的情况下工作?

node.js - 警告 : Each child in a list should have a unique "key" prop. %s%s

node.js - 快速 session 保存多长时间?

swift - 无法使用 segue 将值从 FirstVC 传递到 SecondVC

javascript - grails gsp radiogroup,如何为每个输入单选字段设置 id

php - 建议制作在线编码竞赛网站的更好方法

swift - 在头部 View 中设置按钮