npm run doc-server 报错,Console server has not been registered yet!
需要提供可复现方式。
这个命令是用于本地预览 egg 文档的,试下重新安装依赖(干掉 lock 文件先)
@atian25 clone 下来之后,npm install就是这样,
npm version:5.3.0
hexo-cli version: 1.0.4

无法复现,自己跟下源码分析下?
很奇怪啊,我到 build Document 那里,报的是 hexo 的错

可能要分析源码看看了。
cc @popomore 知道啥问题不?
我也碰到了同样的问题,报错信息都一样
node 9.3.0
你们为啥需要本地构建文档?
@atian25 构建着玩啊,觉得 egg 的文档很赞,学习一下怎么做的
可以看下我们写的 https://github.com/eggjs/doctools 研究下源码和测试用例,看看是哪里的问题
之前我遇到是 readme 中,有非法语法,这块确实比较难找问题。
@ngot 嗯,你那个问题之前 @popomore 遇到过。
但现在的问题是,他们取的是最新的文档,我本地,还有 ci 构建都没问题。
@atian25
我构建是因为看到官网没有英文版的入口
强行打开https://eggjs.org/en/intro/
发现顶栏链接不对
侧栏有些翻译是泰语的
想帮忙改一下
@cuyl 赞,非常需要~~~ 还有多语言切换的那个也可以开启了。
@cuyl 你试下换为 8 LTS 版本看看,重新清空安装下依赖。如果还有问题,试着删掉一些文档,排除下是不是非法语法的问题。
@atian25
LTS 我也切换过了,一样的问题,况且 @shengxinjing 他就是用的8
语法问题的话我没改代码也运行不了呢
可以复现了,用 npm 安装时可以复现,我们几个都是用 cnpm 的,估计是依赖引入问题。
cc @popomore
@cuyl @shengxinjing 你们可以先用 cnpm 或 https://github.com/cnpm/npminstall 安装下依赖。
这个问题我们再看看,是这里挂了 https://github.com/eggjs/doctools/blob/master/lib/base.js#L64
@atian25 竟然这么诡异 我马上切到 cnpm 试试
@atian25果然切到 cnpm 就好了
@shengxinjing @cuyl 你们先在 cnpm 下用着先吧,对 hexo 不熟,还不知道原因在哪。
@popomore doctools 的用例在 npm 下也跑不了。
就用 cnpm 跑吧
@popomore 这个错误,原因在于 npm 和 cnpm 安装依赖包方式有差异。
使 hexo 在初始化时,加载 hexo-server 依赖包失败。进而导致你出现的错误。
步骤一: hexo 在初始化的时候(new Hexo()),会尝试更新并加载这5个依赖包:
{
"hexo": {
"version": "3.4.3"
},
"dependencies": {
"hexo-generator-index": "^0.2.1",
"hexo-generator-tag": "^0.2.0",
"hexo-renderer-less": "^0.2.0",
"hexo-renderer-nunjucks": "^1.0.5",
"hexo-server": "^0.2.0"
}
}
步骤二:
cnpm下,这5个依赖包存放路径是这样的:
node_modules\[email protected]@egg-doctools\node_modules\hexo-generator-index
node_modules\[email protected]@egg-doctools\node_modules\hexo-generator-tag
node_modules\[email protected]@egg-doctools\node_modules\hexo-renderer-less
node_modules\[email protected]@egg-doctools\node_modules\hexo-renderer-nunjucks
node_modules\[email protected]@egg-doctools\node_modules\hexo-server
npm 下,这5个依赖包存放路径是这样的:
s
node_modules\hexo-generator-index
node_modules\hexo-generator-tag
node_modules\hexo-renderer-less
node_modules\hexo-renderer-nunjucks
node_modules\hexo-server
步骤三: hexo 是会到当前根目录下,找这5个依赖包,
(eg:当前代码根目录在 egg-doctools, 即会在 egg-doctools/node_modules 下找这个依赖包)

具体代码逻辑可跟踪
hexo/lib/hexo/index.js,
hexo/lib/hexo/load_plugins.js,
hexo/lib/hexo/update_package.js
这几个文件。
步骤四, 错误还原。
hexo-server。yield this.hexo.call('server', {}); 时会调用到 self.extend.console.get('server');self.extend.console.get('server'),所以抛出上面错误。抛错位置代码片段:

cnpm 应对cnpm 同学协助,了解 npm 和 cnpm 之间的区别,和各自安装原理。issue 给 hexo 解决。[email protected] 已经修复该问题,重新安装下依赖即可。
Most helpful comment
错误原因:
@popomore 这个错误,原因在于
npm和cnpm安装依赖包方式有差异。使
hexo在初始化时,加载hexo-server依赖包失败。进而导致你出现的错误。具体分析:
步骤一:
hexo在初始化的时候(new Hexo()),会尝试更新并加载这5个依赖包:步骤二:
cnpm下,这5个依赖包存放路径是这样的:
npm 下,这5个依赖包存放路径是这样的:
s
步骤三: hexo 是会到当前根目录下,找这5个依赖包,
(eg:当前代码根目录在 egg-doctools, 即会在 egg-doctools/node_modules 下找这个依赖包)
具体代码逻辑可跟踪
hexo/lib/hexo/index.js,hexo/lib/hexo/load_plugins.js,hexo/lib/hexo/update_package.js这几个文件。
步骤四, 错误还原。
hexo-server。yield this.hexo.call('server', {});时会调用到self.extend.console.get('server');self.extend.console.get('server'),所以抛出上面错误。抛错位置代码片段:

解法:
cnpm应对cnpm同学协助,了解npm和cnpm之间的区别,和各自安装原理。issue给hexo解决。