【发布时间】:2021-10-31 09:54:03
【问题描述】:
TL;DR
我无法执行诸如tsc 之类的命令,除非我在其前面包含npx(例如npx tsc)。我该如何解决这个问题?
标题对我遇到的问题的解释不好。
假设我已经安装了一个带有 CLI 的 npm 包(本例中为 typescript)。 CLI 的使用方式如下
tsc <filename> 或只是 tsc。但是每当我尝试这样做时,我都会收到类似的错误
'tsc' is not recognized as an internal or external command,
operable program or batch file.
但是......当我这样做时
npx tsc
然后就可以了!
那么问题出在哪里?
做npx tsc的问题是因为
- npx 执行命令很慢
- 必须在每个命令的前面输入
npx和前面的内容,这很烦人。
问题是,这原本不是 WSL 的问题。
你为什么不直接使用 WSL?
我一直遇到 WSL 问题(主要是由于安全原因导致的权限问题),所以我卸载了 WSL,只使用了命令提示符。我本来希望使用 WSL,但这根本不是一个选择。
其他信息:
- 我正在使用 Windows 命令提示符。
- 我已经全局安装了包
那么有没有办法以这种方式执行命令还是命令提示错误?
【问题讨论】:
-
您似乎是在本地而不是全局安装了这些库。全局库使用适当的 bat 文件部署到主节点文件夹,以便于访问(例如
tsc和其他此类命令),并且只要节点位于路径环境变量中就可以工作。通过在本地安装它们,您需要在任何地方使用npx。 -
@Alejandro 对....我忘了提到我确实在全球范围内安装了它们。对此感到抱歉。
-
真正的问题是“为什么不使用 npx?”因为这就是它的全部意义所在:运行项目本地 CLI 工具而不会污染您的全局安装。如果你想在 npm 脚本中手动运行,你只需要
npx,你不需要。关于这一点,为什么需要手动运行tsc而不是让它成为项目构建脚本的一部分?
标签: node.js npm command-line-interface npx