devtools::check 由于小插图构建而失败
devtools::check fails because of vignette building
我正在开发一个包并考虑在其中包含一个小插图。我使用 RStudio 进行我的包开发,并按照 Hadley Wickam 的说明使用 Rmarkdown
和 knitr
或编写小插图。
从 Rstudio 中按 knit
时我可以编译小插图,但是命令 devtools::check()
returns 出现错误:
==> devtools::check(cleanup = FALSE)
Updating mypackage documentation
Loading mypackage
Setting env vars ---------------------------------------------------------------
CFLAGS : -Wall -pedantic
CXXFLAGS :-Wall -pedantic
Building mypackage ---------------------------------------------------------------
'/Library/Frameworks/R.framework/Resources/bin/R' --no-site-file
--no-environ \ --no-save --no-restore --quiet CMD build \ '/Volumes/Stockage/Dropbox/R/Packages/mypackage' --no-resave-data \
--no-manual
* checking for file ‘/Volumes/Stockage/Dropbox/R/Packages/mypackage/DESCRIPTION’ ... OK
* preparing ‘mypackage’:
* checking DESCRIPTION meta-information ... OK
* cleaning src
* installing the package to build vignettes
* creating vignettes ...
ERROR Error: processing vignette 'mypackage-vignette.Rmd' failed with diagnostics: It seems you should call rmarkdown::render() instead of knitr::knit2html() because mistral-vignette.Rmd appears to be an R Markdown v2 document.
Execution halted
Error: Command failed (1)
In addition: Warning message:
`cleanup` is deprecated
Execution halted
Exited with status 1.
我应该做什么或改变什么?我知道这只是支票。
Session 信息:
> sessionInfo()
R version 3.3.1 (2016-06-21)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X 10.11.6 (El Capitan)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] ggplot2_2.1.0 foreach_1.4.3 knitr_1.14 rmarkdown_1.2
[5] mistral_2.2.1
下面的错误消息具有误导性,已在更高版本的 knitr 中修复:
ERROR Error: processing vignette 'mypackage-vignette.Rmd' failed with diagnostics: It seems you should call rmarkdown::render()
instead of knitr::knit2html()
because mistral-vignette.Rmd appears to be an R Markdown v2 document.
问题不是晕影引擎 knitr::rmarkdown
。这个小插图是正确的。问题是您还必须将 rmarkdown
(除 knitr
之外)添加到包的 DESCRIPTION
文件中的 Suggests
,否则在 R CMD check
期间,rmarkdown 包将不可用,因此 knitr 将退回到 knit2html()
来构建小插图,但 knit2html()
看到本应由 rmarkdown::render()
编译的 Rmd 文档,因此抛出错误。
小插图引擎 knitr::rmarkdown
依赖于 rmarkdown,因此 rmarkdown
需要出现在 Suggests
中的 DESCRIPTION
中。同样,如果 vignette 引擎需要其他包,则必须将这些包指定为正在检查的包的(硬或软)依赖项。
这个问题的原始答案提到了晕影引擎rmarkdown::render
。这不是有效的晕影引擎,不应使用。
我正在开发一个包并考虑在其中包含一个小插图。我使用 RStudio 进行我的包开发,并按照 Hadley Wickam 的说明使用 Rmarkdown
和 knitr
或编写小插图。
从 Rstudio 中按 knit
时我可以编译小插图,但是命令 devtools::check()
returns 出现错误:
==> devtools::check(cleanup = FALSE)
Updating mypackage documentation
Loading mypackage
Setting env vars ---------------------------------------------------------------
CFLAGS : -Wall -pedantic
CXXFLAGS :-Wall -pedantic
Building mypackage ---------------------------------------------------------------
'/Library/Frameworks/R.framework/Resources/bin/R' --no-site-file
--no-environ \ --no-save --no-restore --quiet CMD build \ '/Volumes/Stockage/Dropbox/R/Packages/mypackage' --no-resave-data \
--no-manual
* checking for file ‘/Volumes/Stockage/Dropbox/R/Packages/mypackage/DESCRIPTION’ ... OK
* preparing ‘mypackage’:
* checking DESCRIPTION meta-information ... OK
* cleaning src
* installing the package to build vignettes
* creating vignettes ...
ERROR Error: processing vignette 'mypackage-vignette.Rmd' failed with diagnostics: It seems you should call rmarkdown::render() instead of knitr::knit2html() because mistral-vignette.Rmd appears to be an R Markdown v2 document.
Execution halted
Error: Command failed (1)
In addition: Warning message:
`cleanup` is deprecated
Execution halted
Exited with status 1.
我应该做什么或改变什么?我知道这只是支票。
Session 信息:
> sessionInfo()
R version 3.3.1 (2016-06-21)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X 10.11.6 (El Capitan)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] ggplot2_2.1.0 foreach_1.4.3 knitr_1.14 rmarkdown_1.2
[5] mistral_2.2.1
下面的错误消息具有误导性,已在更高版本的 knitr 中修复:
ERROR Error: processing vignette 'mypackage-vignette.Rmd' failed with diagnostics: It seems you should call
rmarkdown::render()
instead ofknitr::knit2html()
because mistral-vignette.Rmd appears to be an R Markdown v2 document.
问题不是晕影引擎 knitr::rmarkdown
。这个小插图是正确的。问题是您还必须将 rmarkdown
(除 knitr
之外)添加到包的 DESCRIPTION
文件中的 Suggests
,否则在 R CMD check
期间,rmarkdown 包将不可用,因此 knitr 将退回到 knit2html()
来构建小插图,但 knit2html()
看到本应由 rmarkdown::render()
编译的 Rmd 文档,因此抛出错误。
小插图引擎 knitr::rmarkdown
依赖于 rmarkdown,因此 rmarkdown
需要出现在 Suggests
中的 DESCRIPTION
中。同样,如果 vignette 引擎需要其他包,则必须将这些包指定为正在检查的包的(硬或软)依赖项。
这个问题的原始答案提到了晕影引擎rmarkdown::render
。这不是有效的晕影引擎,不应使用。