节点server.js可以工作,但是npm start不能

时间:2018-11-01 12:04:14

标签: node.js npm

我在使用npm运行节点应用程序时遇到问题。当我尝试node server.js时它将起作用,但是当我尝试npm start时会出现以下错误:

npm ERR! file bash
npm ERR! path bash
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn bash
npm ERR! sample-app@1.0.0 start: `node server.js`
npm ERR! spawn bash ENOENT
npm ERR!
npm ERR! Failed at the sample-app@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Nick\AppData\Roaming\npm-cache\_logs\2018-11-01T11_57_12_947Z-debug.log

我的package.json包含启动脚本:

  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node server.js"
  },

这是我的server.js文件:

const express = require('express')
const app = express()

app.use(express.static('public'))
app.set('view engine', 'ejs')

app.get('/', (req, res) => {
    res.render('index')
})

app.listen(3000)

如果这可能是问题,我最近将Node更新到10.13.0版本?我已经尝试清理缓存了。

这是日志:

0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli   'C:\\Users\\Nick\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli   'start' ]
2 info using npm@6.4.1
3 info using node@v10.13.0
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle sample-app@1.0.0~prestart: sample-app@1.0.0
6 info lifecycle sample-app@1.0.0~start: sample-app@1.0.0
7 verbose lifecycle sample-app@1.0.0~start: unsafe-perm in lifecycle true
8 verbose lifecycle sample-app@1.0.0~start: PATH: C:\Users\Nick\AppData\Roaming\npm\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin;C:\Users\Nick\Desktop\repos\sample-app\node_modules\.bin;C:\Python27\;C:\Python27\Scripts;C:\ProgramData\Boxstarter;C:\Users\Nick\AppData\Roaming\npm;C:\Program Files\Haskell\bin;C:\Program Files\Haskell Platform\8.4.3\lib\extralibs\bin;C:\Program Files\Haskell Platform\8.4.3\bin;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Users\Nick\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\adb;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\QuickTime\QTSystem\;C:\ProgramData\chocolatey\bin;C:\Program Files (x86)\Skype\Phone\;C:\Program Files\Java\jdk-9\bin;C:\Program Files\Git\cmd;C:\WINDOWS\System32\OpenSSH\;C:\Users\Nick\AppData\Roaming\npm\node_modules\npm;C:\Program Files\Haskell Platform\8.4.3\mingw\bin;C:\Users\Nick\AppData\Roaming\npm;C:\Program Files\MongoDB\Server\4.0\bin;C:\Users\Nick\AppData\Roaming\nvm;C:\Program Files\nodejs;C:\Program Files\nodejs\;C:\Users\Nick\AppData\Local\Programs\Python\Python37\Scripts\;C:\Users\Nick\AppData\Local\Programs\Python\Python37\;C:\Users\Nick\AppData\Roaming\cabal\bin;C:\Users\Nick\AppData\Roaming\local\bin;C:\Ruby24-x64\bin;C:\Users\Nick\AppData\Local\Microsoft\WindowsApps;C:\Users\Nick\AppData\Local\atom\bin;C:\Users\Nick\AppData\Local\GitHubDesktop\bin;C:\Users\Nick\AppData\Local\Microsoft\WindowsApps;C:\Users\Nick\AppData\Local\hyper\app-2.0.0\resources\bin;C:\Users\Nick\AppData\Local\Programs\MiKTeX 2.9\miktex\bin\x64\;C:\Program Files\Microsoft VS Code\bin;C:\Users\Nick\AppData\Roaming\nvm;C:\Program Files\nodejs;C:\Users\Nick\AppData\Roaming\npm
9 verbose lifecycle sample-app@1.0.0~start: CWD: C:\Users\Nick\Desktop\repos\sample-app
10 silly lifecycle sample-app@1.0.0~start: Args: [ '-c', 'node server.js' ]
11 info lifecycle sample-app@1.0.0~start: Failed to exec start script
12 silly lifecycle sample-app@1.0.0~start: Returned: code: -4058  signal: null
13 info lifecycle sample-app@1.0.0~start: Failed to exec start script
14 verbose stack Error: sample-app@1.0.0 start: `node server.js`
14 verbose stack spawn bash ENOENT
14 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:232:19)
14 verbose stack     at onErrorNT (internal/child_process.js:407:16)
14 verbose stack     at process._tickCallback (internal/process/next_tick.js:63:19)
15 verbose pkgid sample-app@1.0.0
16 verbose cwd C:\Users\Nick\Desktop\repos\sample-app
17 verbose Windows_NT 10.0.17134
18 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\Nick\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js" "start"
19 verbose node v10.13.0
20 verbose npm  v6.4.1
21 error file bash
22 error path bash
23 error code ELIFECYCLE
24 error errno ENOENT
25 error syscall spawn bash
26 error sample-app@1.0.0 start: `node server.js`
26 error spawn bash ENOENT
27 error Failed at the sample-app@1.0.0 start script.
27 error This is probably not a problem with npm. There is likely additional logging output above.
28 verbose exit [ 1, true ]

我的目录如下:

sample-app
|--- node_modules
|--- package.json
|--- package-lock.json
|--- server.js

2 个答案:

答案 0 :(得分:0)

我刚刚修复了它。必须使用this link中的答案完全卸载节点,然后从头开始安装node和npm。我想这与PATH变量有些冲突。现在一切正常。还是谢谢你!

答案 1 :(得分:0)

遇到了类似的问题。如果您使用的是 Windows,请确保 %userprofile%\.npmrc 包含 script-shell=cmd。花了几个小时试图找出这个错误......