Skip to main content

Installation

Prerequisite: either NPM (comes with node) or Yarn.

If you'd like to install BuckleScript globally, do:

yarn global add bs-platform

or

npm install -g bs-platform

This gives you a few globally exposed commands you can run, described later. But usually, you'd install the project locally:

yarn add --dev bs-platform
npm install --save-dev bs-platform

The commands that are exposed are:

  • bsb, the build system.
  • bsc, the raw compiler. Usually not used directly.
  • bsrefmt, the included Reason parser & printer.

Alternatives (Power Users)​

Install From Source, Through NPM/Yarn​

Prerequisite: either npm or yarn, plus the standard C toolchain.

git clone https://github.com/bucklescript/bucklescript
cd bucklescript
npm install

Install From Source, Without NPM/Yarn​

See this for details https://github.com/BuckleScript/bucklescript/blob/master/CONTRIBUTING.md#setup

Troubleshooting​

spawnSync ENOENT error​

If you get an error that looks like Error: spawnSync /node_modules/bs-platform/lib/bsb.exe ENOENT it might be caused if you have npm postinstall scripts disabled. In that case, re-enable scripts with npm config set ignore-scripts false and re-install bs-platform

Permission denied errors​

Under some conditions, the global installation of bs-platform will result in npm errors, typically indicating Error: EACCES: permission denied. Here are some methods for resolving this problem.

Manually change npm’s default directory​

Changing where NPM stores the package files may help, see the second solution on the docs.npmjs.com site.

Enable the unsafe-perm npm option​

While using unsafe-perm does have some drawbacks, it easily resolves the permissions issue. When the changing the default directory does not work, then this may be the next best option.

npm install -g bs-platform --unsafe-perm