mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
c4b9e079bf
The current reasonml needs an example of how to do getInitialProps. tmepple posted the only known way of doing it in [this comment](https://github.com/zeit/next.js/issues/4202#issuecomment-439175214). It is unlikely reasonml users are going to discover that comment or figure it out on their own so having it in an example is critical. Also, dependencies updated. After updating dependencies, I get this error: ``` ModuleBuildError: Module build failed (from ./node_modules/next/dist/build/webpack/loaders/next-babel-loader.js): [1] Error: Cannot find module '@babel/core' [1] babel-loader@8 requires Babel 7.x (the package '@babel/core'). If you'd like to use Babel 6.x ('babel-core'), you should install 'babel-loader@7'. ``` Seems like @babel/core is required as peer dependency per [this comment](https://github.com/babel/gulp-babel/issues/124#issuecomment-326853222) so I added it. The way to do getInitialProps has changed in 7.0.2 canary so this also has a comment in the code about what change is required to get that working. |
||
---|---|---|
.. | ||
bindings | ||
components | ||
pages | ||
.babelrc | ||
.bsb.lock | ||
.gitignore | ||
bsconfig.json | ||
index.js | ||
next.config.js | ||
package.json | ||
README.md |
Example app using ReasonML & ReasonReact components
How to use
Using create-next-app
Execute create-next-app
with Yarn or npx to bootstrap the example:
npx create-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!
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