1
0
Fork 0
mirror of https://github.com/terribleplan/next.js.git synced 2024-01-19 02:48:18 +00:00
next.js/examples/with-reasonml
Nicholas Rakoto 016920e3e0 Example: Improve ReasonML example (#3021)
* Git ignore with-reasonml/lib folder

The lib folder contains code generated by BuckleScript, it shouldn't be
versioned.

* Fix, case sensitive paths

Next.js use case-sensitive-paths-webpack-plugin and BuckleScript tries
to maintain the filename case.

* Refactor, use a .babelrc file instead of a babel config in package.json

This is the official recommended way in Next.js

* Enable way, way, waaaay nicer error messages!

Adds `"bsc-flags": ["-bs-super-errors"]` to the bsconfig.json file.

https://reasonml.github.io/community/blog/#way-way-waaaay-nicer-error-messages

* Fix npm scripts & use concurrently to run bsb & next in parallel for dev

* Upgrade bs-platform

* Replace statefulComponent with new reducerComponent

https://github.com/reasonml/reason-react/blob/master/HISTORY.md#024

* Upgrade with-reasonml example to next.js 3
2017-09-30 22:02:45 +02:00
..
components Example: Improve ReasonML example (#3021) 2017-09-30 22:02:45 +02:00
pages Example: Improve ReasonML example (#3021) 2017-09-30 22:02:45 +02:00
.babelrc Example: Improve ReasonML example (#3021) 2017-09-30 22:02:45 +02:00
.gitignore Example: Improve ReasonML example (#3021) 2017-09-30 22:02:45 +02:00
bsconfig.json Example: Improve ReasonML example (#3021) 2017-09-30 22:02:45 +02:00
index.js Merge v3-beta into master (#2809) 2017-08-27 22:13:35 +02:00
package.json Example: Improve ReasonML example (#3021) 2017-09-30 22:02:45 +02:00
README.md Example: Improve ReasonML example (#3021) 2017-09-30 22:02:45 +02:00

Deploy to now

Example app using ReasonML & ReasonReact components

How to use

Download the example or clone the repo:

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

Install it and run:

npm install
npm run build
npm run dev

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!

The idea behind the example

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