【问题标题】:tslint CLI and jest CLI not working on iterm zsh macOStslint CLI 和 jest CLI 在 iterm zsh macOS 上不起作用
【发布时间】:2019-03-12 04:25:11
【问题描述】:

即使在全局安装 tslint、typescript 之后,tslint CLI 似乎也无法在 macOS 上的 i-term zsh 上运行。当我尝试使用它时,它会说

zsh: command not found: tslint

但是当添加到节点项目的包json中时

"fix": "tslint --fix --project ."

然后运行

yarn fix

它似乎运行正常。我尝试通过键入来查找 npm 全局前缀

npm config get prefix

它指向一个

usr/local/Cellar/node/10.7.0 

所有其他二进制文件(如节点)都可以工作,并且 bin 文件夹中包含 tslint,这意味着它实际上应该可以工作,但似乎没有。即使是 jest CLI 似乎也不起作用,但是当添加到项目的 package.json 时可以正常工作。

我不明白为什么这不起作用。任何帮助将不胜感激。

【问题讨论】:

    标签: javascript node.js macos zsh tslint


    【解决方案1】:

    我再次遇到了这个问题,并且因为它困扰着我而一心想要解决它。这个答案可能就像 shell 的 A、B、C,但我相信它会帮助像我这样的初学者。

    因此,当我们在终端(基本上是 CLI)上安装任何可执行的库时,shell 需要知道该二进制文件的存储位置。简而言之,我们需要告诉我们的shell,假设您要在终端上运行一个名为sapphire 的CLI,shell 必须知道要运行的sapphire 二进制文件在哪里。 Shell 通过.zshrc(如果您使用zsh 作为shell)或.bashrc(如果您使用bash 作为shell)文件中指定的$PATH 环境变量知道这一点。

    为了知道$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。事情会得到反映。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-27
      • 2019-03-14
      • 1970-01-01
      • 1970-01-01
      • 2017-08-14
      • 2021-02-15
      • 2018-09-15
      相关资源
      最近更新 更多