gpt4 book ai didi

node.js - 本地安装的 Node.js cli 调用的行为与全局不同

转载 作者:太空宇宙 更新时间:2023-11-03 23:08:35 25 4
gpt4 key购买 nike

场景:

我写了一个cli脚本。它位于目录 mycli 中,名为 mycli.js,并被命名为 #!/usr/bin/env node。在项目的 package.json 中,我包含了 "name": "mycli", "bin": "mycli.js"

此时,我可以通过两种方式从项目根调用 mycli,即 $ node mycli 或简单地 $ mycli.js

发布到 npm 并全局安装此软件包后,我现在可以从任何地方调用 $ mycli$ node mycli,但是,本地安装不会显示来自其自己的项目根的相同行为;我必须使用更合格的名称来调用脚本,例如 $node_modules/mycli/mycli.js 或 $nodenode_modules/mycli/mycli.js。

为什么$node mycli在本地场景下不起作用?

最佳答案

查看以下答案:How to use package installed locally in node_modules?

基本上,当您全局安装软件包时,将会找到可执行文件,因为它位于您的 PATH 中。默认情况下,node_modules 目录不在您的 PATH 中。将系统上的每个 node_modules 目录添加到 PATH 中会变得非常困惑。

您可以使用 echo $PATH 检查当前的 PATH。您可以使用 PATH=$(npm bin):$PATH 添加本地 node_modules 目录(在 session 的生命周期内)。链接的答案还有使用别名的替代方法。

关于node.js - 本地安装的 Node.js cli 调用的行为与全局不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25757806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com