在Windows 2008服务器上安装和使用npm(Node.js)模块

问题描述 投票:2回答:3

有人可以建议 - 如何解决这个问题?此设置在Windows 7笔记本电脑上本地工作正常,但在Windows 2008服务器上失败。

以下是设置:1。在Windows Server 2008上使用ASP.NET Core App和NodeServices.2。在服务器上安装Node.js和NPM。

以管理员帐户“xyz”之一登录。当我安装一个npm模块 - 在这种情况下,cypress测试框架,它安装在路径下:

C:\Users\xyz\AppData\Local

但是当我运行应用程序时,它会在路径下查找模块:

C:\Windows\system32\config\systemprofile\AppData\Local\Cypress\Cache\3.1.5\Cypress\

应用程序失败,抱怨未找到该模块。

到目前为止我尝试过的事情:1。将cypress模块​​直接从用户localappdata文件夹复制到上面的位置。然后它工作。 2.尝试给出var cypress = require('cypress')的完整路径 - 它找到了模块,但每当我们尝试使用cypress时,都会给出相同的错误。 3.尝试将nom前缀和缓存位置更改为上述路径,但npm install cypress始终仅在用户的localappdata路径下安装。

关于如何做任何想法 - 要么安装npm,要在所需位置安装模块。或者让应用程序查看所需的路径?

非常感谢。

这是错误:

An unhandled exception occurred while processing the request.
NodeInvocationException: No version of Cypress is installed in: C:\Windows\system32\config\systemprofile\AppData\Local\Cypress\Cache\3.1.5\Cypress

Please reinstall Cypress by running: cypress install
----------

Cypress executable not found at: C:\Windows\system32\config\systemprofile\AppData\Local\Cypress\Cache\3.1.5\Cypress\Cypress.exe
----------

Platform: win32 (6.1.7601)
Cypress Version: 3.1.5
Error: No version of Cypress is installed in: C:\Windows\system32\config\systemprofile\AppData\Local\Cypress\Cache\3.1.5\Cypress

Please reinstall Cypress by running: cypress install
----------

Cypress executable not found at: C:\Windows\system32\config\systemprofile\AppData\Local\Cypress\Cache\3.1.5\Cypress\Cypress.exe
----------

Platform: win32 (6.1.7601)
Cypress Version: 3.1.5
at raise (C:\inetpub\wwwroot\projectTest\node_modules\cypress\lib\errors.js:161:13)
From previous event:
at C:\inetpub\wwwroot\EmbeddedDashboard\node_modules\cypress\lib\errors.js:169:37
at C:\inetpub\wwwroot\projectTest\node_modules\cypress\lib\tasks\verify.js:48:60
From previous event:
at checkExecutable (C:\inetpub\wwwroot\projectTest\node_modules\cypress\lib\tasks\verify.js:43:11)
at C:\inetpub\wwwroot\projectTest\node_modules\cypress\lib\tasks\verify.js:213:12
at processImmediate [as _immediateCallback] (timers.js:383:17)
From previous event:
at Object.start (C:\inetpub\wwwroot\projectTest\node_modules\cypress\lib\tasks\verify.js:212:6)
at Object.start (C:\inetpub\wwwroot\projectTest\node_modules\cypress\lib\exec\run.js:130:19)
at C:\inetpub\wwwroot\projectTest\node_modules\cypress\lib\cypress.js:29:19
at _fileCreated (C:\inetpub\wwwroot\projectTest\node_modules\tmp\lib\tmp.js:246:7)
at FSReqWrap.oncomplete (fs.js:82:15)
From previous event:
at Object.run (C:\inetpub\wwwroot\projectTest\node_modules\cypress\lib\cypress.js:26:28)
at module.exports.cypress.run.then (C:\inetpub\wwwroot\projectTest\Scripts\RunTests.js:4:13)
at C:\Windows\TEMP\mecqsmig.e5o:166:18
at IncomingMessage.<anonymous> (C:\Windows\TEMP\mecqsmig.e5o:186:37)
at emitNone (events.js:67:13)
at IncomingMessage.emit (events.js:166:7)
at endReadableNT (_stream_readable.js:905:12)
at nextTickCallbackWith2Args (node.js:474:9)
at process._tickCallback (node.js:388:17)
Microsoft.AspNetCore.NodeServices.HostingModels.HttpNodeInstance.InvokeExportAsync<T>(NodeInvocationInfo invocationInfo, CancellationToken cancellationToken)
node.js asp.net-core npm windows-server-2008-r2 cypress
3个回答
1
投票

赛普拉斯使用cachedir找到安装赛普拉斯的正确位置。 C:\Windows\System32\config\systemprofile是Windows上SYSTEM用户的主文件夹。不知何故,npm install正在以SYSTEM身份执行,而不是以您的用户身份执行。这将导致赛普拉斯尝试安装到SYSTEM的%APPDATA%目录,即C:\Windows\System32\config\systemprofile


1
投票

根据system requirements of Cypress,这是有道理的:

Windows 7+,仅为Windows提供32位二进制文​​件。


1
投票

我想出了如何解决这个问题。出于某种原因,当我运行应用程序时,即使它被配置为在服务帐户下运行,它仍然使用默认系统位置来缓存位置。

您可以通过将环境变量设置为所需位置来配置赛普拉斯的缓存位置。这解决了我的问题。以下是它的链接:https://docs.cypress.io/guides/getting-started/installing-cypress.html#Binary-cache

基本上,您为此环境变量CYPRESS_CACHE_FOLDER设置了一个值,并且您已设置。

希望这有助于某人。

© www.soinside.com 2019 - 2024. All rights reserved.