如何在不输入 npx 的情况下运行 NodeJS CLI 工具

Posted

技术标签:

【中文标题】如何在不输入 npx 的情况下运行 NodeJS CLI 工具【英文标题】:How to run NodeJS CLI tools without having to type npx 【发布时间】: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 而不是让它成为项目构建脚本的一部分? 【参考方案1】:

!这仅适用于 Windows!

好的,所以我遇到了this post,谢天谢地,第一个答案就是解决方案!

只需将%USERPROFILE%\AppData\Roaming\npm添加到系统变量中的路径变量即可!

要访问系统变量,请按 Windows 键,键入 Environment variables,然后单击窗口底部的 Environment variables。路径变量可以在User variables for (profile name)下找到。

【讨论】:

以上是关于如何在不输入 npx 的情况下运行 NodeJS CLI 工具的主要内容,如果未能解决你的问题,请参考以下文章

如何在不刷新html页面的情况下在表格上显示数据(使用nodejs和mysql ajax)

如何在不指定字段名称的情况下使用 mongodb 在 nodejs 中进行部分数据搜索? [复制]

有没有办法在不重新启动调试器的情况下评估nodejs中的promise?

如何在不定义任何限制的情况下在 python 中获取任意数量的输入?

[NodeJs] 你有使用过npx吗?它主要解决什么问题?

Excel 2010:如何在不修改其输入值的情况下跨多个单元格更改公式?