【发布时间】:2015-03-22 00:19:02
【问题描述】:
我一直在尝试创建将在 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" (
【问题讨论】:
-
您遇到的错误似乎并非来自您手动调整的版本。另见Stack Overflow: What does %~dp0 mean, and how does it work?
-
很抱歉给您带来了困惑。错误来自生成的命令。
标签: windows node.js command command-prompt