在npm.cmd
文件中,下一行:
ECHO %NPM_PREFIX_NPM_CLI_JS%
IF EXIST "%NPM_PREFIX_NPM_CLI_JS%" (
ECHO FILE EXISTS
SET "NPM_CLI_JS=%NPM_PREFIX_NPM_CLI_JS%"
)
"%NODE_EXE%" "%NPM_CLI_JS%" %*
执行此操作时,ECHO
打印:C:\Windows\system32\config\systemprofile\AppData\Roaming\npm\node_modules\npm\bin\npm-cli.js
。我已经检查了文件-它存在。当我以SYSTEM用户身份运行自己的批处理时-它也可以工作。但是当TeamCity代理执行npm
命令时,它认为npm-cli.js
文件不存在。
我检查了对该文件和文件夹的访问权限,一切都很好。甚至,当我删除IF
并仅保留SET
命令节点可以找到时,结束执行文件。
为了进行测试,我编写了一个脚本来检查所有文件夹是否存在。从TeamCity测试显示运行它,它认为确实存在C:\Windows\system32\config\systemprofile\AppData\Roaming
之前的文件夹,但之后的所有内容都不存在。
从TeamCity命令行步骤执行DIR /A
命令,打印:
03/02/2017 10:31 AM <DIR> .
03/02/2017 10:31 AM <DIR> ..
10/26/2015 01:33 PM <DIR> Microsoft
03/02/2017 10:31 AM <DIR> NuGet
0 File(s) 0 bytes
4 Dir(s) 122,662,453,248 bytes free
实际上,结果中没有显示3个文件夹。
这可能是什么原因?