I always have this same vignette problem when I am building packages on RStudio that I host on GitHub. The reason is that in that situation I want the vignettes files in the
inst/doc folder. If you build to a .tar.gz (which is what you'd upload to CRAN), then the vignettes files are put there, but if you build and install using Install and Restart on RStudio's build tab, then the files won't be in the
inst/doc folder even if you have specified for Roxygen to rebuild your vignettes on Install and Restart. It rebuilds them in the
vignettes folder but doesn't copy them to
Here is my workflow.
- Prepare my vignette Rmds in the
vignettes folder. Use the template in RStudio.
- Use this code to build them and put them in the
tools::buildVignettes(dir = ".", tangle=TRUE)
file.copy(dir("vignettes", full.names=TRUE), "inst/doc", overwrite=TRUE)
- Then push the changes to GitHub. Also this will mean that when you use Install and Restart on the Build tab, your vignettes will now be there too (e.g. they'll show up on
Be aware that RStudio's default Check package behavior on the Build tab is to delete your
inst/doc folder. If you don't notice and push changes to GitHub, you've just deleted all your vignettes from your GitHub package. They are still there in the
vignettes folder but you'd have to use the
install_github() to see them. The deletion is happening because you need to use
devtools:check(".", vignettes=FALSE) and there is no way to set that from the Build Options in RStudio. But you can uncheck the
use devtools package functions and stop RStudio from using devtools. You may want to add
--no-manual to the R CMD check options box since building the manual can be time consuming.
devtools functions are not helpful, I find, since they are for a different workflow more oriented to submitting packages to CRAN via a .tar.gz file or if you are not working via the RStudio build platform.
devtools::build_vignettes() is going to rebuild your vignettes but put them at the base level in
doc which is not where you need them. It will also create the
Meta folder which you don't need.
devtools::build() will make a tar.gz file with the vignette files in
inst/doc but you don't want the tar.gz for your GitHub package repo or for the Install and Restart button on the Build tab. You want the
inst/doc folder filled with the vignette files.