报的错误是生成的 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, '\\\\')
这个我们修复下~
已在 dev 分支上修复~
@pangxie1991 最新的dev好像又出现问题了,我在windows下,会出现\packages\uploader
而\u 在win下是无法解析的;
build-entry.js
// line 82 再加上.replace(/\\/g, '\\\\')就好了
return `'${name}': wrapper(r => require.ensure([], () => r(require('${path.relative(join('docs/src'), fullPath).replace(/\\/g, '\\\\')}')), '${name}'))`;
@pangxie1991 一直没有解决。。
@pangxie1991 一直没有解决。。
其实在82行换成replace(/\/, '/')也许 因为反斜杠是转义符 换成正斜杠就好咯
Most helpful comment
@pangxie1991 最新的dev好像又出现问题了,我在windows下,会出现\packages\uploader
而\u 在win下是无法解析的;
build-entry.js