首页
Javascript
Html
Css
Node.js
Electron
移动开发
工具类
服务端
浏览器相关
前端收藏
其他

eggjs启动报spawn tail ENOENT错误

2018年10月12日 发布 阅读(1017) 作者:懒炖

启动eggjs npm run start报错,而使用npm run dev没问题

开发电脑使用的window 7,习惯使用系统自带的cmd执行相关命令,抛出如下错误:

  1. [egg-scripts] Run node D:\project\imqianduan.com\node_modules\egg-scripts\lib\start-cluster {"port":7000,"title":"egg-server-imqianduan.com","framework":"D:\\project\\imqianduan.com\\node_modules\\egg","baseDir":"D:\\project\\imqianduan.com"} --title=egg-server-imqianduan.com
  2. [egg-scripts] Save log file to C:\Users\88888\logs
  3. [egg-scripts] Wait Start: 1...
  4. [egg-scripts] Wait Start: 2...
  5. [egg-scripts] Wait Start: 3...
  6. [egg-scripts] Wait Start: 4...
  7. [egg-scripts] Wait Start: 5...
  8. [egg-scripts] Wait Start: 6...
  9. [egg-scripts] tail -n 100 C:\Users\88888\logs\master-stderr.log
  10. [egg-scripts] ignore tail error: Error: spawn tail ENOENT
  11. [egg-scripts] Start got error, see C:\Users\88888\logs\master-stderr.log
  12. [egg-scripts] Or use `--ignore-stderr` to ignore stderr at startup.

依建议,取消了--ignore-stderr了,重新启动npm run start
貌似也没有启动成功,也没有具体的错误提示

  1. [egg-scripts] Run node D:\project\imqianduan.com\node_modules\egg-scripts\lib\start-cluster {"port":7000,"title":"egg-server-imqianduan.com","framework":"D:\\project\\imqianduan.com\\node_modules\\egg","baseDir":"D:\\project\\imqianduan.com"} --title=egg-server-imqianduan.com
  2. [egg-scripts] Save log file to C:\Users\88888\logs
  3. [egg-scripts] Wait Start: 1...
  4. [egg-scripts] Wait Start: 2...
  5. [egg-scripts] Wait Start: 3...
  6. [egg-scripts] Wait Start: 4...
  7. [egg-scripts] Wait Start: 5...
  8. [egg-scripts] Wait Start: 6...
  9. [egg-scripts] tail -n 100 C:\Users\88888\logs\master-stderr.log
  10. [egg-scripts] ignore tail error: Error: spawn tail ENOENT
  11. [egg-scripts] Start got error, see C:\Users\88888\logs\master-stderr.log
  12. [egg-scripts] Or use `--ignore-stderr` to ignore stderr at startup.
  13. npm ERR! code ELIFECYCLE
  14. npm ERR! errno 1
  15. npm ERR! imqianduan.com@1.0.0 start: `egg-scripts start --daemon --port 7000`
  16. npm ERR! Exit status 1
  17. npm ERR!
  18. npm ERR! Failed at the imqianduan.com@1.0.0 start script.
  19. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
  20. npm ERR! A complete log of this run can be found in:
  21. npm ERR! C:\Users\88888\AppData\Roaming\npm-cache\_logs\2018-10-12T10_52_13_219Z-debug.log

通过上面可以看到,有一个错误spawn tail ENOENT,start没有启动成功,什么原因呢?

百度出来各种重复的答复的,解决不了问题。google spawn tail ENOENT第一条
https://github.com/mthenw/frontail/issues/81,启发是不是cmd的问题?

使用git 执行npm run start

牛逼了,错误信息出来了,很明显,redis密码错误

  1. [egg-scripts] Run node D:\project\imqianduan.com\node_modules\egg-scripts\lib\start-cluster {"port":7000,"title":"egg-server-imqianduan.com","framework":"D:\\project\\imqianduan.com\\node_modules\\egg","baseDir":"D:\\project\\imqianduan.com"} --title=egg-server-imqianduan.com
  2. [egg-scripts] Save log file to C:\Users\88888\logs
  3. [egg-scripts] Wait Start: 1...
  4. [egg-scripts] Wait Start: 2...
  5. [egg-scripts] Wait Start: 3...
  6. [egg-scripts] Wait Start: 4...
  7. [egg-scripts] Wait Start: 5...
  8. [egg-scripts] tail -n 100 C:\Users\88888\logs\master-stderr.log
  9. [egg-scripts] Got error when startup:
  10. [egg-scripts] 2018-10-12 18:29:11,209 ERROR 7752 nodejs.ReplyError: ERR invalid password
  11. [egg-scripts] at JavascriptReplyParser.returnError (D:\project\imqianduan.com\node_modules\ioredis\lib\redis\parser.js:25:25)
  12. [egg-scripts] at JavascriptReplyParser.run (D:\project\imqianduan.com\node_modules\redis-parser\lib\javascript.js:135:18)
  13. [egg-scripts] at JavascriptReplyParser.execute (D:\project\imqianduan.com\node_modules\redis-parser\lib\javascript.js:112:10)
  14. [egg-scripts] at Socket.<anonymous> (D:\project\imqianduan.com\node_modules\ioredis\lib\redis\event_handler.js:107:22)
  15. [egg-scripts] at emitOne (events.js:116:13)
  16. [egg-scripts] at Socket.emit (events.js:211:7)
  17. [egg-scripts] at addChunk (_stream_readable.js:263:12)
  18. [egg-scripts] at readableAddChunk (_stream_readable.js:250:11)
  19. [egg-scripts] at Socket.Readable.push (_stream_readable.js:208:10)
  20. [egg-scripts] at TCP.onread (net.js:607:20)
  21. [egg-scripts] name: "ReplyError"
  22. [egg-scripts] message: "ERR invalid password"
  23. [egg-scripts] command: {"name":"auth","args":["abcd987654321"]}
  24. [egg-scripts] pid: 7752
  25. [egg-scripts] hostname: XNZX-PC-103
  26. [egg-scripts]
  27. [egg-scripts] Db.prototype.authenticate method will no longer be available in the next major release 3.x as MongoDB 3.6 will only allow auth against users in the admin db and will no longer allow multiple credentials on a socket. Please authenticate using MongoClient.connect with auth credentials.
  28. [egg-scripts] 2018-10-12 18:29:11,225 ERROR 7752 [-/127.0.0.1/-/1ms GET /] nodejs.ReplyError: ERR invalid password
  29. [egg-scripts] at JavascriptReplyParser.returnError (D:\project\imqianduan.com\node_modules\ioredis\lib\redis\parser.js:25:25)
  30. [egg-scripts] at JavascriptReplyParser.run (D:\project\imqianduan.com\node_modules\redis-parser\lib\javascript.js:135:18)
  31. [egg-scripts] at JavascriptReplyParser.execute (D:\project\imqianduan.com\node_modules\redis-parser\lib\javascript.js:112:10)
  32. [egg-scripts] at Socket.<anonymous> (D:\project\imqianduan.com\node_modules\ioredis\lib\redis\event_handler.js:107:22)
  33. [egg-scripts] at emitOne (events.js:116:13)
  34. [egg-scripts] at Socket.emit (events.js:211:7)
  35. [egg-scripts] at addChunk (_stream_readable.js:263:12)
  36. [egg-scripts] at readableAddChunk (_stream_readable.js:250:11)
  37. [egg-scripts] at Socket.Readable.push (_stream_readable.js:208:10)
  38. [egg-scripts] at TCP.onread (net.js:607:20)
  39. [egg-scripts] name: "ReplyError"
  40. [egg-scripts] message: "ERR invalid password"
  41. [egg-scripts] command: {"name":"auth","args":["abcd987654321"]}
  42. [egg-scripts] pid: 7752
  43. [egg-scripts] hostname: XNZX-PC-103
  44. [egg-scripts]
  45. [egg-scripts] 2018-10-12 18:29:11,226 ERROR 7752 nodejs.ReplyError: ERR invalid password
  46. [egg-scripts] at JavascriptReplyParser.returnError (D:\project\imqianduan.com\node_modules\ioredis\lib\redis\parser.js:25:25)
  47. [egg-scripts] at JavascriptReplyParser.run (D:\project\imqianduan.com\node_modules\redis-parser\lib\javascript.js:135:18)
  48. [egg-scripts] at JavascriptReplyParser.execute (D:\project\imqianduan.com\node_modules\redis-parser\lib\javascript.js:112:10)
  49. [egg-scripts] at Socket.<anonymous> (D:\project\imqianduan.com\node_modules\ioredis\lib\redis\event_handler.js:107:22)
  50. [egg-scripts] at emitOne (events.js:116:13)
  51. [egg-scripts] at Socket.emit (events.js:211:7)
  52. [egg-scripts] at addChunk (_stream_readable.js:263:12)
  53. [egg-scripts] at readableAddChunk (_stream_readable.js:250:11)
  54. [egg-scripts] at Socket.Readable.push (_stream_readable.js:208:10)
  55. [egg-scripts] at TCP.onread (net.js:607:20)
  56. [egg-scripts] name: "ReplyError"
  57. [egg-scripts] message: "ERR invalid password"
  58. [egg-scripts] command: {"name":"auth","args":["abcd987654321"]}
  59. [egg-scripts] pid: 7752
  60. [egg-scripts] hostname: XNZX-PC-103
  61. [egg-scripts]
  62. [egg-scripts] 2018-10-12 18:29:11,226 ERROR 7752 [app_worker] start error, exiting with code:1
  63. [egg-scripts] 2018-10-12 18:29:11,226 ERROR 7752 [app_worker] exit with code:1
  64. [egg-scripts] 2018-10-12 18:29:11,281 ERROR 11844 nodejs.AppWorkerDiedError: [master] app_worker#4:7752 died (code: 1, signal: null, suicide: false, state: dead), current workers: ["1","2","3"]
  65. [egg-scripts] at Master.onAppExit (D:\project\imqianduan.com\node_modules\egg-cluster\lib\master.js:400:21)
  66. [egg-scripts] at emitOne (events.js:116:13)
  67. [egg-scripts] at Master.emit (events.js:211:7)
  68. [egg-scripts] at Messenger.sendToMaster (D:\project\imqianduan.com\node_modules\egg-cluster\lib\utils\messenger.js:133:17)
  69. [egg-scripts] at Messenger.send (D:\project\imqianduan.com\node_modules\egg-cluster\lib\utils\messenger.js:98:12)
  70. [egg-scripts] at EventEmitter.cluster.on (D:\project\imqianduan.com\node_modules\egg-cluster\lib\master.js:268:22)
  71. [egg-scripts] at emitThree (events.js:141:20)
  72. [egg-scripts] at EventEmitter.emit (events.js:217:7)
  73. [egg-scripts] at ChildProcess.worker.process.once (internal/cluster/master.js:186:13)
  74. [egg-scripts] at Object.onceWrapper (events.js:317:30)
  75. [egg-scripts] name: "AppWorkerDiedError"
  76. [egg-scripts] pid: 11844
  77. [egg-scripts] hostname: XNZX-PC-103
  78. [egg-scripts]
  79. [egg-scripts] 2018-10-12 18:29:11,282 ERROR 11844 [master] app_worker#4:7752 start fail, exiting with code:1
  80. [egg-scripts] 2018-10-12 18:29:11,282 ERROR 11844 [master] exit with code:1
  81. [egg-scripts]
  82. [egg-scripts] Start got error, see C:\Users\88888\logs\master-stderr.log
  83. [egg-scripts] Or use `--ignore-stderr` to ignore stderr at startup.

原因: eggjs启动npm run start时,使用的配置文件是config.default.js,而我本地的redis和线上的redis密码是不一样,config.default.js配置的是线上的redis密码。
换回本地redis密码,问题迎面解决

总结:
这个问题解决的关键是使用了git执行命令,提示了更详情的报错信息,详情的报错信息使用问题变得很清晰

所以window开发,还是建议少用cmd吧,使用git或其他专业的命令行工具,事半功倍

版权声明:本站文章除特别声明外,均采用署名-非商业性使用-禁止演绎 4.0 国际 许可协议,如需转载,请注明出处

评论

  •  
  • tail命令详情

    命令从指定点开始将 File 参数指定的文件写到标准输出。如果没有指定文件,那么会使用标准输入。Number 变量指定将多少单元写到标准输出。Number 变量的值可以是正的或负的整数。如果值的前面有 +(加号),从文件开头指定的单元数开始将文件写到标准输出。如果值的前面有 -(减号),那么从文件末尾指定的单元数开始将文件写到标准输出。如果值前面没有 +(加号)或 -(减号),那么从文件末尾指定的单元号开始读取文件

    发布:2017-05-23 阅读(390)

  • ECMA-262-3 in detail——第七章:OOP(第二部分:ECMAScript实现)

    这一章的第二部分是关于EMCAScript中的面向对象编程。在第一部分中我们讨论了OOP的基本理论并勾画出和ECMAScript的相似之处。在阅读第二部分之前,如果有必要,我还是建议首先阅读这一章的第一部分.基本理论,因为后面将会用到其中的一些术语。

    发布:2015-05-26 阅读(220)

  • ECMA-262-3 in detail——第七章:OOP(第一部分:一般理论)

    这一章我们讨论ECMAScript中面向对象编程(object-oriented programming)的几个主要方面。由于这一主题已经在许多文章中谈论过,本章并不打算“老调重弹”,而是试图更多地着眼于这些过程内在的理论方面。尤其是,我们将研究对象创建的算法,看看对象间的关系(包括最基本的关系——继承)是如何实现的,并且给出一些讨论中将用到的准确定义(我希望这样能够打消一些术语和思路上的疑惑以及一些关于Javascript文章中OOP部分的常见的混淆)。

    发布:2015-05-06 阅读(214)

  • ECMA-262-3 in detail——第六章:闭包

    在这一章中我们来谈谈Javascript中被讨论最多的话题之一——关于闭包(closures)。事实上这个主题并不是新鲜的。然而我们在这里将试着更多从理论的角度去分析和理解它,然后我们还会看一下ECMAScript内关于闭包的内容。

    发布:2015-04-28 阅读(206)

  • ECMA-262-3 in detail——第五章:函数

    在这章里我们讨论ECMAScript中的一个基本对象——函数。我们将会看到不同类型的函数如何影响一个上下文中的变量对象,以及这些函数的作用域链中都包含什么。我们将会回答像下面这样经常被问到的问题:“下面这两种创建函数的方式有什么区别吗(如果有的话,区别是什么呢)?”

    发布:2015-04-17 阅读(196)

  • ECMA-262-3 in detail——第四章:作用域链

    正如我们从第二章.变量对象中了解到的,执行上下文的数据(变量,函数声明,函数形参)以变量对象的属性的方式储存。

    发布:2015-04-07 阅读(192)

  • ECMA-262-3 in detail——第三章:this关键字

    许多程序员习惯于认为在编程语言中,this关键字是与面向对象编程紧密相关的,而且引用的是由构造式最新创建的对象。在ECMAScript中,这个概念也被实现了,然而我们将看到,在这里它不仅仅指向已创建的对象。

    发布:2015-03-25 阅读(204)

  • ECMA-262-3 in detail——第二章:变量对象

    在程序中我们总是声明变量和函数然后用它们来搭建我们的系统。但是解释器(interpreter)是在哪里和以什么方式来找到我们的数据(函数,变量)的呢?

    发布:2015-03-24 阅读(214)

  • ECMA-262-3 in detail——第一章:执行上下文

    第1章:在这一章里,我们将会讨论ECMAScript中的执行上下文(execution context)以及与它们相关的可执行代码(executable code)的类型。

    发布:2015-01-10 阅读(425)

  • IE提示expected 错误,如expected ';' expected '}' expected ')'等等

    IE提示expected 错误,如果语法没问题,不防检查下是不是文件编码问题,改为utf-8试试

    发布:2013-11-01 阅读(142)