如何从命令行 运行 节点应用程序?

How can I run a node app from the command line?

在 RHEL 上,我将各种可执行文件放在 ~/.local/bin 中,例如。 nvim.appimage。由于 ~/.local/bin 在我的 $PATH 变量中,我可以从任何很棒的目录调用 nvim.appimage。

我希望能够从任何目录调用一些节点应用程序,例如 ESLint。这些不是二进制文件,而是包含很多文件和目录的目录。它们应该位于哪个目录(大概在 $PATH 中),以便我作为用户而不是其他用户可以从我的任何目录调用它们?还有应该如何调用它们。

例如,我已将 cowsay 节点应用程序放入 ~/。local/bin 我可以从我的任何目录中像这样调用它:

$ node ~/.local/bin/cowsay/node_modules/cowsay/cli.js moo

(我实际上可以从该命令中省略节点,因为 cli.js 在顶部有 #!bin/bash/env node。)

我希望能够使用一个简单的命令从我的任何目录调用 cowsay,例如 cowsay

我知道很多节点应用程序不打算从命令行 运行 但有些是。特别是我很难让 neovim 和 Ale 识别一些像 ESLint 这样的节点 linters。也许如果我能解决 cowsay 问题,我就可以转向使用 neovim 的 ESLint。我希望如果我可以从 $PATH 中的某个位置获取可调用的 ESLint,它可能会被 neovim / Ale 使用。

这能达到你的预期吗?

mkdir ~/.local/nodexe
cd ~/.local/nodexe
ln -fs ../bin/cowsay/node_modules/cowsay/cli.js cowsay
PATH=$PATH:~/.local/nodexe

假设您在 cli.js 中有 #!bin/bash/env node,那么您可以 运行 输入 cowsay moo