Windows 上的 npm 命令每次都出现语法错误

Windows 上的 npm 命令每次都出现语法错误

我尝试编写一个脚本,将 npm_modules 安装在当前工作目录以外的其他位置。这是为了反映我们的工作流程,即二进制文件保存在另一个驱动器上,而不是我们开发时定期备份的虚拟驱动器上。

我尝试通过根据当前目录临时设置目标目录的位置来做到这一点 npm config set prefix "!targetDir!"(以镜像另一个驱动器上的文件路径)。

我现在意识到,对于 Windows 来说,这可能是错误的命令(我现在想使用npm install --prefix ./install/here <package>本问答中描述的方法https://stackoverflow.com/questions/14469515/how-to-npm-install-to-a-specified-directory)。这是我第一次使用批处理脚本syntax error。我不记得路径是否正确,我只是通过 ctrl-z-ing 找到了它。我首先通过双击运行它。意识到我错过了错误消息,我在终端中运行它,这是我第一次看到syntax error

SETLOCAL EnableDelayedExpansion

SET "currentDir=%cd%"

FOR /f "tokens=3,7 delims=/" %%a in ("%currentDir%") do (
    SET "branchName=%%a"
    SET "repoName=%%b"
)

SET "targetDir=O:\!branchName!\productname\!repoName!"

IF NOT EXIST "!targetDir!" (
    mkdir "!targetDir!"
)

echo RepoName: !repoName!, BranchName: !branchName!, TargetDir: !targetDir!

npm config set prefix "!targetDir!"
npm install
npm config delete prefix

ENDLOCAL

npm config set prefix "!targetDir!"我想,自从我在脚本中使用了这行代码后,syntax error无论我尝试什么,我都会得到一个结果。如果这行代码不可能是罪魁祸首,那么我又测试了几次脚本迭代,然后才意识到 npm 不再起作用,我也可以分享这一点。

现在我只需输入npmpowershell/terminal 即可,但它总是返回语法错误。不过当我使用 git bash 时,它确实有效!

我尝试多次重新安装 nodejs,尝试通过 git bash 更新 npm 安装,使用 windows 卸载 nodejs,并手动删除 C:/User/Program Files/nodejs 中的 nodejs 文件夹。我还暂时删除了 %AppData%/Roaming 中的 npm 文件夹。我还从路径中删除了 npm。我检查了调用的脚本 (npm.cmd),并从我的私人电脑中复制了一个工作版本。我还尝试使用 chocolatey 重新安装 nodejs。

我有时会在执行这些步骤之间重启电脑,但不是每次都重启。每当我尝试检查 npm 是否再次运行时,我总是打开一个新的终端实例。

但我仍然得到相同的输出:( Syntaxfehler.或者syntax error,我只是希望尽可能精确)

答案1

解决方案:我进入 %AppData%\Roaming\npm 并直接在其中运行 npm,它成功了。然后我使用npm config delete prefixnpm,它又可以使用了。

问题出在哪里?我成功地在前缀中保存了一个路径,但由于我的两个变量(branchnamereponame)为空,它看起来像。此路径被标记为包含非法字符,尽管我不确定为什么。我发现,通过尝试在 AppData 文件夹中O:\projectname设置路径。npm update -g npm

我仍然不知道这些持久数据位于何处。

相关内容