Docz: “基本”属性无法按预期工作

创建于 2019-08-29  ·  24评论  ·  资料来源: doczjs/docz

doczrc.js指定base: /mybase/ ,然后运行yarn run docz build ,创建的.docz/dist文件夹如下所示:
```$ ls .docz / dist /
404组件---docs-resources-papers-md-fe63ff69f05fbc4ade87.js.map
404.html组件--- docs-resources-urls-md-18ff15bc97f33d5c99ec.js
app-166636596e5034530b76.js组件---docs-resources-urls-md-18ff15bc97f33d5c99ec.js.map
app-166636596e5034530b76.js.map组件--- src-pages-404-js-d2f6e42ec0b240a466f0.js
chunk-map.json组件---src-pages-404-js-d2f6e42ec0b240a466f0.js.map
commons-7abd6c6896e587d23041.js mybase
commons-7abd6c6896e587d23041.js.map页面数据
组件--- docs-index-mdx-eb57cbfd78a8e941cf11.js静态
组件---docs-index-mdx-eb57cbfd78a8e941cf11.js.map styles.2543ff947a193d7f33b1.css
组件--- docs-lecture-1-lecture-1-mdx-e41e47345bd392371e15.js styles-488c87c5398088946843.js
组件---docs-lecture-1-lecture-1-mdx-e41e47345bd392371e15.js.map styles-488c87c5398088946843.js.map
组件--- docs-lecture-2-lecture-2-mdx-0c06a42ea379446ff851.js webpack-runtime-3b441f85f0b567d235ec.js
组件---docs-lecture-2-lecture-2-mdx-0c06a42ea379446ff851.js.map webpack-runtime-3b441f85f0b567d235ec.js.map
组件--- docs-resources-papers-md-fe63ff69f05fbc4ade87.js webpack.stats.json


The file `.docz/dist/mybase/index.html` contains references such as: 


`` that do not contain mybase . There is no index.html`文件。

我期望将.docz / dist文件夹复制(或链接)到我的Apache服务器的服务器根目录中,然后可以通过https://host/mybase访问它。 这些不适用于这些生成的文件。

我希望能得到指导,我是否尝试使用docz可以实现:构建然后复制到挂在服务器根目录下的子文件夹,该子文件夹中包含所有必需的文件。

bug pending-user-response v2

最有用的评论

即使完全擦除了node_modules.docz ,这对我也不起作用。
尽管出现了首页,但很多参考文献都没有前缀,链接也没有前缀。
您可以自己查看: https

所有24条评论

@godmar应该用2.0.0-rc.40

docz现在使用--prefixPaths从当盖茨比base中提供doczrc.js

嗨,我也面临着同样的问题。 直到版本2.0.0-rc.40被发布?。 我必须部署我的文档Asap。

@ronaklalwaniii

2.0.0-rc.40已经发布。

您可以执行yarn add docz@next进行更新。

@rakannimer感谢您的快速回复。 更新后,我遇到了一些控制台错误。 能否请您检查图像并告诉我这是否应该添加基本路径,以及dist文件夹应该如何。

console

docs

folder

您设置base似乎正确。

您是否尝试删除.docz和node_modules并重新安装docz?

即使完全擦除了node_modules.docz ,这对我也不起作用。
尽管出现了首页,但很多参考文献都没有前缀,链接也没有前缀。
您可以自己查看: https

好的,谢谢你的链接!

@Dangoo您是否认为我们最近对Entry的route字段所做的更改有

如果将slug附加到基本参数,则文件在那里,因此prefixPaths可以按预期工作。

例如, https://theta.cs.vt.edu/cpp2019/docs-lecture1-lecture-1/存在,但已被链接为https://theta.cs.vt.edu/docs-lecture1-lecture-1/

@rakannimer
实际上,我已经在github页面上进行了我自己的测试(可惜现在还不能共享),并且路径的前缀正确。

@godmar是否可以通过运行以下命令在本地重现托管行为?

$ docz build
# $ gatsby build --prefixPaths
# ...
# ✨  Done in 30.35s.
$ docz serve
# $ gatsby serve --prefixPaths
# info gatsby serve running at: http://localhost:9000/cpp2019/

我没有全局安装的docz 。 如果我跑

$ yarn docz build
yarn run v1.17.3
warning package.json: No license field
$ /home/gback/cppclass2019/node_modules/.bin/docz build
warning package.json: No license field
error Command "build" not found.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
✖  error     Error: ENOENT: no such file or directory, stat '/home/gback/cppclass2019/.docz/public' 
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

我正在使用docz-@^2.0.0-rc.40 -它有build命令吗?

@godmar
尝试将其用作package.json预定义脚本,或将其前缀为npx

$ npx docz build
$ npx docz serve

它有一个build命令吗?

是的,它确实。 实际上,这就是将它与引擎盖下的盖茨比一起使用的方式。

  1. docz build通过gatsby,inkl创建样式指南的静态版本。 捆绑您的组件和运行时脚本📦
  2. 之后,您可以运行docz serve来模拟Web服务器或托管(静态)Web服务器的构建输出🚀

在这里看看:
https://www.docz.site/docs/project-configuration#dest

编辑:请参阅下面的评论,以了解此处发生的情况。

与npx的结果相同。

$ npx docz serve
yarn run v1.17.3
warning package.json: No license field
error Command "serve" not found.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

文档说运行docz dev 。 当我这样做时,它将尝试构建该站点,但是随后失败:

* ../components/Notice in ./src/gatsby-theme-docz/index.js
✖ 「wdm」:
ERROR in ./src/gatsby-theme-docz/index.js
Module not found: Error: Can't resolve '../components/Notice' in '/home/gback/cppclass2/.docz/src/gatsby-theme-docz'
 @ ./src/gatsby-theme-docz/index.js 1:2364-2405 1:2540-2546
 @ ../node_modules/gatsby-theme-docz/src/base/Layout.js
 @ ../docs/index.mdx
 @ ./.cache/sync-requires.js
 @ ./.cache/app.js

在这里,路径被搞砸了。 我按此处所述覆盖gatsby-theme-docz / index.js-我要做的就是添加一个内置组件,因此我不必导入它,请参见此处

我已经成功地使用yarn run gatsby serve进行开发,并使用yarn run gatsby build进行了构建。

顺便说一句,当我使用yarn run gatsby develop ,不考虑路径前缀。

对于在Gatsby中使用docz命令还是仅使用docz主题,我有些困惑。 我觉得这样做比较安全,因此我遵循了这些说明,而不是这些说明。 就是说,IIRC,即使有了后者,基本内容也无法正常工作。

所以-为什么npx docz serve打印yarn ...
我认为docz正在运行,但是在这里您正在运行yarn ,大概在.docz目录中。
这对我来说失败了,大概是因为.docz目录处于未定义状态。

如果我擦除该目录并重新开始,则会观察到以下内容:

(a)使用yarn run gatsby develop我看到该网站在http://localhost:8000/cpp2019/的位置正确投放

(b)使用yarn run gatsby build我得到的结果显示在本期顶部。

(c)在尝试了(a)和(b)中的命令后运行yarn run docz build ,出现命令“ build” not found错误。 大概是因为.docz目录仅包含文件夹app而没有package.json文件。

(d)现在,我擦除.docz文件夹,然后再次运行yarn run docz build 。 我看到一条消息


✅    Docz is ready to go 

💻    yarn docz dev
⛏    yarn docz build
👀    yarn docz serve

但是此构建最终因以下原因而失败:

TypeError: Cannot read property 'replace' of undefined

  - render-page.js:19164 Code
    /home/gback/cppclass2/.docz/public/render-page.js:19164:37

这是我之前已跟踪到您的代码组件的错误; 如果在三重反引号部分中未指定语言,则docz失败。 这就是为什么我必须像这样重写您的组件的原因:

--- node_modules/gatsby-theme-docz/src/components/Code/index.js 2019-09-04 11:26:27.155000000 -0400
+++ src/gatsby-theme-docz/components/Code/index.js  2019-09-05 09:15:05.869936223 -0400
@@ -5,8 +5,8 @@

 import { usePrismTheme } from '~utils/theme'

-export const Code = ({ children, className: outerClassName }) => {
-  const [language] = outerClassName.replace(/language-/, '').split(' ')
+export const Code = ({ children, className: outerClassName, ...rest }) => {
+  const [language] = outerClassName ? outerClassName.replace(/language-/, '').split(' ') : ['text']
   const theme = usePrismTheme()

   return (

但是在运行yarn run docz build ,不会覆盖我覆盖的组件。 (这大概是预料之中的,因为我正在使用gatsby-theme-docz所以我的应用程序是主题为docz的gatsby,对吗?)

ps:因此,通过docz命令使用docz与通过gatsby + gatsby-theme-docz使用命令时,行为似乎有所不同。 我对这两种系统知之甚少,无法确定应该使用哪种系统。 凭直觉,我对后者感到更自在,希望那时我可以使用gatsby + docz,而不是将gatsby隐藏在其中的docz。 但是我可能是错的-通过澄清这两种方法中的哪一种是首选,或者总的来说,权衡是什么,我和社区中的其他人可能会从中受益。 谢谢你。

经过数小时的尝试, @ rakannimer消除了基础末尾的多余斜杠对我

如果您使用doczgatsby-theme-docz设置,可以共享@ronaklalwaniii吗?

@godmar ,我正在使用gatsby-theme-docz设置。

现在,我可以正常工作,除了设置基础时,它实际上添加了两次,导致我的侧边栏链接为/styleguide/styleguide/Component

如果失败,具体情况是什么?

  1. 我创建了两个新项目:
npx create-docz-app my-docz-app
  1. 然后我编辑base并在这两个不同的项目上尝试了/custombase//custombase
  2. 然后当我检查dist文件夹链接并且资源以我的自定义基本前缀为前缀时
  3. yarn serve用我的自定义前缀提供了文件服务

docz:2.0-rc.45
作业系统:Windows 10 1903
节点:10.14.1
纱:1.17.2
的PowerShell:6.2.3

我可以通过将docz降级为2.0.0-rc.39来使其工作。

我的doczrc.js看起来像这样

export default {
  base: '/guides/',
  title: 'Guide',
  src: './',
  dest: '../public/guides/',
  typescript: true,
  debug: true,
}

有任何更新吗? 我真的很想将版本号更新为最新...

@rubencustodio

您是否有机会向仓库提供该问题的一小部分副本?

编辑:我能够进行修复。

我认为应该使用最新的docz版本候选2.0.0-rc.66 。 你可以试试看吗?

您还可以在这里看到一个有效的示例: https :

如果您在gatsby网站中使用docz作为主题,则只需将--prefixPaths /my-path/传递给gatsby buildgatsby serve ,它应该可以正常工作。

2.0.0-rc.66为我解决了这个问题。 谢谢👍

“ docz”:“ ^ 2.3.1”

npx docz serve

 docz-app@ serve /Users/Documents/webApp/xxxxxx/packages/mobile-ui-doc/.docz
 gatsby serve "--port" "3001" "--host" "localhost"

⠀
You can now view docz-app in the browser.
⠀
  http://localhost:3001/

docz serve缺少--prefix-paths选项。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

nicholasess picture nicholasess  ·  3评论

w0wka91 picture w0wka91  ·  3评论

YardWill picture YardWill  ·  3评论

regrettably picture regrettably  ·  3评论

mquandalle picture mquandalle  ·  3评论