报的错误是生成的 examples-dist/entry-docs.js 文件中,文件路径分隔符只用了单个反斜线的问题。
error in ./docs/examples-dist/entry-docs.js Syntax Error: Bad character escape sequence (45:118) 43 | 'zh-CN/radio': wrapAsyncComponent(r => require.ensure([], () => r(require('E:\vue\vant**\**docs\examples-docs\zh-CN\radio.md')), 'zh-CN/radio.md')), 44 | 'zh-CN/switch': wrapAsyncComponent(r => require.ensure([], () => r(require('E:\vue\vant\docs\examples-docs\zh-CN\switch.md')), 'zh-CN/switch.md')), 45 | 'zh-CN/uploader': wrapAsyncComponent(r => require.ensure([], () => r(require('E:\vue\vant\docs\examples-docs\zh-CN\uploader.md')), 'zh-CN/uploader.md')),
主要原因在 zan-doc 包下面的 build-entry.js 文件,直接使用的 path.resolve 方法,这个方法返回的路径就是上面的 E:\vue\vant\docs\ 这种。在windows 下应该要再把这个路径转成两个反斜线分隔。
docs.push(`'${lang}/${name}': wrapAsyncComponent(r => require.ensure([], () => r(require('${path.resolve(src, docPath)}')), '${lang}/${name}.md'))`);
中间那部分可以修改为:
path.resolve(src, docPath).replace(/\\/g, '\\\\')