gpt4 book ai didi

windows - 如何在 Windows 上的 Node.js 中创建全局命令

转载 作者:可可西里 更新时间:2023-11-01 11:28:19 26 4
gpt4 key购买 nike

我一直在尝试创建全局命令,这些命令将在 Node.js 的 Windows 上的“命令提示符”中运行。不幸的是,所有教程似乎都是针对 Mac/Linux 的。这通常不会成为问题,但是当我完全遵循它们并使用不同的目录字符串格式和位置以使其与 Windows 兼容时,Node.js 无法准确解析链接。

我能够让它工作的唯一方法是进入 Node 在运行“npm link”后生成的“Windows 命令”文件并手动调整值。这可行,但似乎不是最佳解决方案。

我使用的“目录标识符”是:

#!C:\Users\-我的用户名-\AppData\Roaming\npm\"env node"

生成的 Node.js“Windows 命令”(不起作用):

@IF EXIST "%~dp0\C:\Users\-username-\AppData\Roaming\npm\"env.exe" (
"%~dp0\C:\Users\-username-\AppData\Roaming\npm\"env.exe" node" "%~dp0\node_modules\Node-Command\Test.js" %*
) ELSE (
@SETLOCAL
@SET PATHEXT=%PATHEXT:;.JS;=;%
C:\Users\-username-\AppData\Roaming\npm\"env node" "%~dp0\node_modules\Node-Command\Test.js" %*
)

手动调整Node.js“Windows命令”:

@IF EXIST "%~dp0\node.exe" (
"%~dp0\node.exe" "%~dp0\node_modules\Node-Command\Test.js" %*
) ELSE (
@SETLOCAL
@SET PATHEXT=%PATHEXT:;.JS;=;%
node "%~dp0\node_modules\Node-Command\Test.js" %*
)

我得到的错误(来自生成的命令):

@IF EXIST "C:\Users\-username-\AppData\Roaming\npm\\C:\Users\-username-\AppData\Roaming\npm\"env.exe" (

最佳答案

我不知道什么是正确的防弹方法,但是这个在我的开发机器上工作得很好:

在文件夹 %APPDATA%\npm 中创建文件 test.cmd 包含

@node "C:\full\path\to\test.js" %*

在我的 Windows 版本中,%APPDATA% 扩展为 C:\Users\my_user_name\AppData\Roaming 因此完整的 shell 脚本名称将是 C :\Users\my_user_name\AppData\Roaming\npm\test.cmd

@ 表示不打印 cmd 脚本在内部执行的操作

%* 表示将给 test.cmd 脚本的所有命令行参数作为值传递给 test.js 脚本process.argv 数组

该脚本假定 C:\Program Files\nodejsC:\Users\my_user_name\AppData\Roaming 都已添加到全局环境 PATH 由 Node 安装程序变量

关于windows - 如何在 Windows 上的 Node.js 中创建全局命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28101791/

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