2017-04-22 14:51:51 +02:00
[![Deploy to now ](https://deploy.now.sh/static/button.svg )](https://deploy.now.sh/?repo=https://github.com/zeit/next.js/tree/master/examples/shared-modules)
2016-11-28 01:15:56 +01:00
# Example app using shared modules
2016-12-22 06:10:54 +01:00
## How to use
2016-11-28 01:15:56 +01:00
2017-12-03 05:30:17 +01:00
### Using `create-next-app`
Download [`create-next-app` ](https://github.com/segmentio/create-next-app ) to bootstrap the example:
2018-03-14 09:09:46 +01:00
```bash
npx create-next-app --example shared-modules shared-modules-app
# or
yarn create next-app --example shared-modules shared-modules-app
2017-12-03 05:30:17 +01:00
```
### Download manually
2017-01-16 22:23:24 +01:00
Download the example [or clone the repo ](https://github.com/zeit/next.js ):
2016-12-22 06:10:54 +01:00
```bash
2017-12-07 03:12:42 +01:00
curl https://codeload.github.com/zeit/next.js/tar.gz/canary | tar -xz --strip=2 next.js-canary/examples/shared-modules
2016-12-22 10:07:54 +01:00
cd shared-modules
2016-12-22 06:10:54 +01:00
```
2016-11-28 01:15:56 +01:00
2016-12-23 00:05:49 +01:00
Install it and run:
2016-12-22 06:10:54 +01:00
```bash
2016-11-28 01:15:56 +01:00
npm install
2016-12-23 00:05:49 +01:00
npm run dev
2016-12-22 06:10:54 +01:00
```
2016-12-23 00:05:49 +01:00
Deploy it to the cloud with [now ](https://zeit.co/now ) ([download](https://zeit.co/download))
2016-12-22 06:10:54 +01:00
```bash
2016-12-23 00:05:49 +01:00
now
2016-11-28 01:15:56 +01:00
```
2016-12-22 06:10:54 +01:00
## The idea behind the example
This example features:
* 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