узел не находит двоичные файлы проекта в Windows - PullRequest
0 голосов
/ 10 февраля 2020

У меня проблемы с получением npm или пряжи для запуска сценариев, которые используют двоичные файлы node_modules в Windows 10.

Вот базовый пакет c. json, который воспроизводит проблему для me:

     {
      "name": "repro",
      "version": "1.0.0",
      "main": "index.js",
      "license": "MIT",
      "devDependencies": {
        "electron": "^8.0.0"
      },
      "scripts": {
        "fails": "electron",
        "works": "npx electron"
      }
    }

Если я запускаю yarn works или npm run works, открывается приложение по умолчанию для электронов. Это показывает, что npx может найти приложение и что электрон был успешно установлен в локальные модули node_modules. Но если я запускаю скрипт fails под npm или пряжей, я получаю ошибку 'electron' is not recognized as an internal or external command,

Все, что я прочитал, указывает, что пряжа и npm должны добавить node_modules/.bin к пути перед запуском сценариев, и действительно, если я посмотрю журнал ошибок, сгенерированный npm run start, он содержит следующую строку:

8 verbose lifecycle repro@1.0.0~fails: PATH: C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin;C:\Users\dusty\Beanstalk\repro\node_modules\.bin;C:\Users\dusty\AppData\Roaming\npm;C:\Program Files\nodejs\;C:\Python27\;C:\Python27\Scripts;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\Git\cmd;C:\Program Files\nodejs\;C:\ProgramData\chocolatey\bin;C:\Users\dusty\.cargo\bin;C:\Users\dusty\AppData\Local\Microsoft\WindowsApps;C:\Users\dusty\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\dusty\AppData\Roaming\npm

В частности, C:\Users\dusty\Beanstalk\repro\node_modules\.bin находится в именованном пути.

Я пытался запустить это под powershell, cmd и git - bash с одинаковыми результатами как в их собственных терминалах, так и в коде Visual Studio. Я пробовал стабильную и LTS версии узла. Я попытался установить узел с официального установщика MSI, а также через Chocolatey. Я даже пытался добавить мой каталог node_modules/.bin в переменную среды PATH.

Запуск ./node_modules/electron/cli.js -v вызывает окно предупреждения из "Windows Хост скрипта":

Script: C:\Users\dusty\Beanstalk\repro\node_modules\electron\cli.js
Line: 1
Char: 1
Error: Invalid character
Code: 800A03F6
Source: Microsoft JScript compilation error

Однако node ./node_modules/electron/cli.js -v работает нормально и выводит v8.0.0, как и ./node_modules/.bin/electron.cmd -v . But. / Node_modules / .bin / Electron -v gives a "running scripts is disabled on this system" error. I temporarily fixed the latter with Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser. Unfortunately,npm запустить не удалось still cannot find the команда электрона после этого.

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

Я подозреваю, что этой информации недостаточно, поэтому, пожалуйста, дайте мне знать, что еще я могу предоставить. Исторически я пользователь Linux и не очень знаком с экосистемой Windows. Это мешает мне запустить даже элементарный электронный справочник, и я уверен, что это просто базовая c проблема конфигурации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...