rsnext/examples/with-reasonml
Shu Uesugi 6804039e94 Make example READMEs more consistent (#10124)
* npx create → npm init

* Fix inconsistent instructions

* Update amp-first

* Update with-graphql-react

* with-firebase-cloud-messaging

* Update with-higher-order-component

* change create-next-app url

* Update create-next-app instruction

* Update instructions to use npm instead of npx

* Move "the idea behind the example" to top

* Rename

* Rename

* Update contributing.md with a README template
2020-01-16 23:23:56 +01:00
..
bindings Tweak ReasonML example (#7254) 2019-05-05 13:02:27 +02:00
components [with-reasonml] Show both internal and shared state managment. (#7312) 2019-05-23 16:46:42 -05:00
pages Tweak ReasonML example (#7254) 2019-05-05 13:02:27 +02:00
.babelrc Example: Improve ReasonML example (#3021) 2017-09-30 22:02:45 +02:00
.gitignore Tweak ReasonML example (#7254) 2019-05-05 13:02:27 +02:00
bsconfig.json Tweak ReasonML example (#7254) 2019-05-05 13:02:27 +02:00
index.js Merge v3-beta into master (#2809) 2017-08-27 22:13:35 +02:00
next.config.js Improve linting rules to catch more errors (#9374) 2019-11-10 19:24:53 -08:00
package.json Tweak ReasonML example (#7254) 2019-05-05 13:02:27 +02:00
README.md Make example READMEs more consistent (#10124) 2020-01-16 23:23:56 +01:00

Example app using ReasonML & ReasonReact components

This example features:

  • An app that mixes together JavaScript and ReasonML components and functions
  • An app with two pages which has a common Counter component
  • That Counter component maintain the counter inside its module. This is used primarily to illustrate that modules get initialized once and their state variables persist in runtime

Deploy your own

Deploy the example using ZEIT Now:

Deploy with ZEIT Now

How to use

Using create-next-app

Execute create-next-app with npm or Yarn to bootstrap the example:

npm init next-app --example with-reasonml with-reasonml-app
# or
yarn create next-app --example with-reasonml with-reasonml-app

Download manually

Download the example:

curl https://codeload.github.com/zeit/next.js/tar.gz/canary | tar -xz --strip=2 next.js-canary/examples/with-reasonml
cd with-reasonml

Install it and run:

npm install
npm run dev
# or
yarn
yarn dev

Build and run:

npm run build
npm run start
# or
yarn build
yarn start

Deploy it to the cloud with now (download):

now

Recommendation:

Run BuckleScript build system bsb -w and next -w separately. For the sake of simple convention, npm run dev run both bsb and next concurrently. However, this doesn't offer the full colorful and very, very, veeeery nice error output experience that ReasonML can offer, don't miss it!

There are 2 convenience scripts to facilitate running these separate processes:

  1. npm run dev:reason - This script will start the ReasonML toolchain in watch mode to re-compile whenever you make changes.
  2. npm run dev:next - This script will start the next.js development server so that you will be able to access your site at the location output by the script. This will also hot reload as you make changes.

You should start the scripts in the presented order.