错误发生过程

在hexo-pro点击新建文章时没反应,并且控制台出现一系列错误:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
ERROR Process failed: _drafts/1.md
TypeError: __permalink.startsWith is not a function
at Hexo.postPermalinkFilter (E:\personalBlog\jinhenghaoBlog\node_modules\hexo\dist\plugins\filter\post_permalink.js:14:26)
at Filter.execSync (E:\personalBlog\jinhenghaoBlog\node_modules\hexo\dist\extend\filter.js:72:36)
at Hexo.execFilterSync (E:\personalBlog\jinhenghaoBlog\node_modules\hexo\dist\hexo\index.js:403:35)
at _Document.<anonymous> (E:\personalBlog\jinhenghaoBlog\node_modules\hexo\dist\models\post.js:46:26)
at _Document.path (E:\personalBlog\jinhenghaoBlog\node_modules\warehouse\dist\types\virtual.js:53:32)
at _Document.<anonymous> (E:\personalBlog\jinhenghaoBlog\node_modules\hexo\dist\models\post.js:50:56)
at _Document.permalink (E:\personalBlog\jinhenghaoBlog\node_modules\warehouse\dist\types\virtual.js:53:32)
at _Document.toObject (E:\personalBlog\jinhenghaoBlog\node_modules\warehouse\dist\document.js:69:50)
at _Model._insertOne (E:\personalBlog\jinhenghaoBlog\node_modules\warehouse\dist\model.js:160:29)
at E:\personalBlog\jinhenghaoBlog\node_modules\warehouse\dist\model.js:179:78
at tryCatcher (E:\personalBlog\jinhenghaoBlog\node_modules\bluebird\js\release\util.js:16:23)
at E:\personalBlog\jinhenghaoBlog\node_modules\bluebird\js\release\using.js:185:26
at tryCatcher (E:\personalBlog\jinhenghaoBlog\node_modules\bluebird\js\release\util.js:16:23)
at Promise._settlePromiseFromHandler (E:\personalBlog\jinhenghaoBlog\node_modules\bluebird\js\release\promise.js:547:31)
at Promise._settlePromise (E:\personalBlog\jinhenghaoBlog\node_modules\bluebird\js\release\promise.js:604:18)
at Promise._settlePromise0 (E:\personalBlog\jinhenghaoBlog\node_modules\bluebird\js\release\promise.js:649:10)
at Promise._settlePromises (E:\personalBlog\jinhenghaoBlog\node_modules\bluebird\js\release\promise.js:729:18)
at Promise._fulfill (E:\personalBlog\jinhenghaoBlog\node_modules\bluebird\js\release\promise.js:673:18)
at PromiseArray._resolve (E:\personalBlog\jinhenghaoBlog\node_modules\bluebird\js\release\promise_array.js:127:19)
at PromiseArray._promiseFulfilled (E:\personalBlog\jinhenghaoBlog\node_modules\bluebird\js\release\promise_array.js:145:14)
at Promise._settlePromise (E:\personalBlog\jinhenghaoBlog\node_modules\bluebird\js\release\promise.js:609:26)
at Promise._settlePromise0 (E:\personalBlog\jinhenghaoBlog\node_modules\bluebird\js\release\promise.js:649:10)

同时新建的1.md产生新的permalink字段:

1
permalink: 1755431737276

原因

问题产生原因是因为hexo-number-title插件强制使得front-matter产生permalink: 1755431737276

由于permalink由数字而非字符串构成,使得post_permalink.js无法正确识别文章从而发生错误。

解决方法

卸载hexo-number-title插件

1
npm uninstall hexo-number-title

同时在package.json删除hexo-number-title依赖项即可