Установка и использование модуля npm (Node.js) на сервере Windows 2008 - PullRequest
2 голосов
/ 17 марта 2019

Может кто-нибудь пожалуйста посоветовать - как это решить?Эта установка прекрасно работает локально на ноутбуке с Windows 7, но не работает на сервере Windows 2008.

Вот настройки: 1. Использование приложения ASP.NET Core и NodeServices на Windows Server 2008. 2. Установленные Node.js иNPM на сервере.

Вы вошли как одна из учетных записей администратора "xyz".Когда я устанавливаю модуль npm - в данном случае, Cypress Test Framework, он устанавливается по пути:

C:\Users\xyz\AppData\Local

Но когда я запускаю приложение, он ищет модуль по пути:

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

Приложение не работает, жалуется, что модуль не найден.

То, что я до сих пор пробовал: 1. Скопировал модуль кипариса прямо из папки пользователя 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)

Ответы [ 3 ]

1 голос
/ 19 марта 2019

Это имеет смысл, в соответствии с системными требованиями Cypress :

Windows 7+, для Windows предоставляются только 32-разрядные двоичные файлы.

1 голос
/ 20 марта 2019

Я понял, как решить эту проблему.По какой-то причине, когда я запускаю приложение, даже если оно настроено для запуска под учетной записью службы, оно все равно продолжает использовать системное местоположение по умолчанию для расположения кэша.

Вы можете настроить расположение кэша Cypress, установив переменную окружения в желаемое место.Это решило проблему для меня.Вот ссылка на него: https://docs.cypress.io/guides/getting-started/installing-cypress.html#Binary-cache

По сути, вы устанавливаете значение для этой переменной среды CYPRESS_CACHE_FOLDER, и вы задаетесь.

Надеюсь, это кому-нибудь поможет.

1 голос
/ 18 марта 2019

Cypress использует cachedir, чтобы найти правильное местоположение для установки Cypress.C:\Windows\System32\config\systemprofile - домашняя папка пользователя SYSTEM в Windows.Каким-то образом npm install выполняется как СИСТЕМА, а не как ваш пользователь.Это может привести к тому, что Cypress попытается установить в каталог %APPDATA% SYSTEM, который является C:\Windows\System32\config\systemprofile.

...