Explanation: Node.js - JavaScript and Sass tools
Source:vignettes/explanation/node-js-javascript-and-sass-tools.Rmd
node-js-javascript-and-sass-tools.Rmd
About
Node.js is a runtime
environment which can execute JavaScript code outside a web browser. It
is used widely for web development. Its package manager, npm, makes it easy to
install virtually any JavaScript library. You can use other package
managers such as bun and pnpm that are compatible with
npm
.
To switch from the default npm usage, set a global environment
variable named RHINO_NPM
. For instance, if you want to use
bun
instead of npm
, add
export RHINO_NPM=bun
to your shell startup file
(e.g. .bashrc
).
Rhino uses Node.js to provide state of the art tools for working with JavaScript and Sass. The following functions require Node.js to work:
build_js()
-
build_sass()
(withsass: node
configuration inrhino.yml
) lint_js()
lint_sass()
test_e2e()
Node directory
Under the hood Rhino will create a .rhino
directory in
your project to store the specific libraries needed by these tools. This
directory is git-ignored by default and safe to remove.
Node installation via nvm
Node can be installed in various ways. One of them relies on nvm
(Node Version
Manager).
There’s a known issue when using
multiple versions of Node
that were installed with
nvm
that causes RStudio to not recognize properly the
chosen version. It’s caused by nvm
and RStudio and can be
easily mitigated by starting the RStudio through the terminal:
Ubuntu/Debian Open your terminal of choice (i.e. Bash) and run
rstudio
Windows Open your Windows terminal of choice (i.e. Terminal, PowerShell, Git Bash) and run:
path/to/your/rstudio/folder/Rstudio.exe
Mac Open your Mac terminal of choice (i.e. default Terminal) and run:
open -na Rstudio
build_sass() function
The build_sass()
function is worth an additional
comment. Depending on the configuration in rhino.yml
it can
use either the sass
Node.js package or the sass R package. We recommend
the Node.js version, as it is the primary, actively developed
implementation of Sass. In contrast, the R package uses the deprecated
LibSass
implementation.