Все скрипты npm не работают, хотя сами скрипты могут работать - PullRequest
0 голосов
/ 16 февраля 2019

Любой модуль NPM, который я пытаюсь установить, дает сбой в npm-скриптах, например, postinstall.Если я запускаю его как npm run postinstall, он также не работает.Если я запускаю скрипт postinstall для вызовов напрямую (IE node whatever.js), он работает без проблем.К сожалению, это привело меня к невозможности установить какой-либо модуль, использующий npm-scripts.

Я создал супер простой пакет, чтобы показать проблему.

{
  "name": "gahhh",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "postinstall": "node script.js"
  },
  "author": "",
  "license": "ISC"
}

script.js содержит:

'use strict';

console.log('Hello?');

Вывод из работы:

C:\Workspace\testing>npm run postinstall

> gahhh@1.0.0 postinstall C:\Workspace\testing
> node script.js

npm ERR! file bash
npm ERR! path bash
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn bash
npm ERR! gahhh@1.0.0 postinstall: `node script.js`
npm ERR! spawn bash ENOENT

Вывод подробных ошибок:

C:\Workspace\testing>npm run postinstall --verbose
npm info it worked if it ends with ok
npm verb cli [ 'C:\\Program Files\\nodejs\\node.exe',
npm verb cli   'C:\\Users\\USERNAME\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js',
npm verb cli   'run',
npm verb cli   'postinstall',
npm verb cli   '--verbose' ]
npm info using npm@6.8.0
npm info using node@v10.15.1
npm verb run-script [ 'postinstall' ]
npm info lifecycle gahhh@1.0.0~postinstall: gahhh@1.0.0

> gahhh@1.0.0 postinstall C:\Workspace\testing
> node script.js

npm verb lifecycle gahhh@1.0.0~postinstall: unsafe-perm in lifecycle true
npm verb lifecycle gahhh@1.0.0~postinstall: PATH: C:\Users\USERNAME\AppData\Roaming\npm\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin;C:\Workspace\testing\node_modules\.bin;c:\program files\graphicsmagick-1.3.31-q16;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\RSA SecurID Token Common;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\WebEx\Productivity Tools;C:\Program Files\Git\cmd;C:\Program Files\Java\jdk1.8.0_171\bin;C:\Program Files\maven\bin;C:\Program Files\PuTTY\;C:\xampp\php;C:\ProgramData\ComposerSetup\bin;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\140\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\;C:\Program Files\nodejs\;C:\Users\USERNAME\.windows-build-tools\python27\;C:\Users\USERNAME\AppData\Roaming\npm\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin;C:\Users\USERNAME\AppData\Roaming\npm\node_modules\windows-build-tools\node_modules\.bin;C:\Users\USERNAME\AppData\Roaming\npm\node_modules\.bin;C:\Program Files\Docker\Docker\Resources\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\RSA SecurID Token Common;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Sennheiser\SoftphoneSDK\;C:\Program Files (x86)\WebEx\Productivity Tools;C:\Program Files (x86)\WebEx\PTools020000000;C:\Program Files\Git\cmd;C:\Program Files\Java\jdk1.8.0_171\bin;C:\Program Files\nodejs\;C:\Program Files\maven\bin;C:\Program Files\PuTTY\;C:\xampp\php;C:\ProgramData\ComposerSetup\bin;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\140\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\;C:\Users\USERNAME\AppData\Local\Microsoft\WindowsApps;C:\Users\USERNAME\AppData\Roaming\Composer\vendor\bin;C:\Users\USERNAME\AppData\Roaming\npm
npm verb lifecycle gahhh@1.0.0~postinstall: CWD: C:\Workspace\testing
npm info lifecycle gahhh@1.0.0~postinstall: Failed to exec postinstall script
npm info lifecycle gahhh@1.0.0~postinstall: Failed to exec postinstall script
npm verb stack Error: gahhh@1.0.0 postinstall: `node script.js`
npm verb stack spawn bash ENOENT
npm verb stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:240:19)
npm verb stack     at onErrorNT (internal/child_process.js:415:16)
npm verb stack     at process._tickCallback (internal/process/next_tick.js:63:19)
npm verb pkgid gahhh@1.0.0
npm verb cwd C:\Workspace\testing
npm verb Windows_NT 10.0.14393
npm verb argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\USERNAME\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js" "run" "postinstall" "--verbose"
npm verb node v10.15.1
npm verb npm  v6.8.0
npm ERR! file bash
npm ERR! path bash
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn bash
npm ERR! gahhh@1.0.0 postinstall: `node script.js`
npm ERR! spawn bash ENOENT
npm ERR!
npm ERR! Failed at the gahhh@1.0.0 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm verb exit [ 1, true ]
npm timing npm Completed in 230ms

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\USERNAME\AppData\Roaming\npm-cache\_logs\2019-02-16T17_36_05_033Z-debug.log

Я получу ожидаемый вывод, если я запусту node script.js, поэтому на этом этапеЯ бьюсь головой о стол.У меня закончились идеи.

версия узла: v10.15.1 версия npm: 6.8.0

1 Ответ

0 голосов
/ 17 февраля 2019

ОК после очень долгого поиска, очевидно, кое-как, как shell=bash попал в мой файл .npmrc.Поскольку я использую Windows, bash не будет работать для меня.Удаление этой строки в целом решило проблему.

Думаю, я поделюсь этим на случай, если кто-нибудь еще столкнется с этой проблемой.

...