如何在Rstudio中构建可被browseVignettes识别的R包vignettes
R包vignettes可被browseVignettes检索的正确配置方法
问题产生的核心原因
你收到的警告和手动复制文件被清空的原因是:R包的构建、检查流程会自动处理inst/doc目录的生成和清理,手动创建该目录并拷贝文件的操作不符合标准构建流程,会被check步骤直接清空。默认情况下Rstudio和devtools的检查、安装操作会跳过vignettes编译,才会出现找不到文件的警告。
解决方案
1. 本地安装带vignettes的开发包
直接执行带参数的安装命令,无需手动操作任何文件:
devtools::install(build_vignettes = TRUE)
该命令会自动编译所有vignettes目录下的文档,写入安装后包对应的检索路径,执行完成后直接调用browseVignettes("你的包名")就能正常访问。
2. 调整Rstudio配置,解决R CMD check警告
默认Rstudio的包检查配置会跳过vignettes编译,按如下步骤修改即可:
- 打开Rstudio顶部菜单栏的
Build→ 选择Configure Build Tools - 点击
Check package右侧的Configure按钮 - 删除
Check options输入框中的--no-build-vignettes参数,替换为--build-vignettes - 保存配置后重新运行R CMD check,不会再出现该警告,且自动生成符合要求的vignettes文件。
3. 命令行运行check的配置
如果你习惯用devtools函数运行检查,直接执行以下命令即可:
devtools::check(args = c("--build-vignettes"))
关键注意事项
- 绝对不要手动创建和维护
inst/doc目录,所有该目录下的内容都应该由R的标准构建流程自动生成,手动添加的内容会在check、构建步骤中被强制清空,反而会引发不必要的错误。 - 如果需要对外分享带vignettes的源码包,执行
devtools::build()生成tar.gz格式的源码包即可,其他人安装时添加build_vignettes = TRUE参数就能正常访问vignettes。
内容的提问来源于stack exchange,提问作者zdebruine
相关产品推荐
相关产品推荐

