2017-04-22 12:51:51 +00: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 00:15:56 +00:00
# Example app using shared modules
2016-12-22 05:10:54 +00:00
## How to use
2016-11-28 00:15:56 +00:00
2017-12-03 04:30:17 +00:00
### Using `create-next-app`
Download [`create-next-app` ](https://github.com/segmentio/create-next-app ) to bootstrap the example:
```
npm i -g create-next-app
create-next-app --example shared-modules shared-modules-app
```
### Download manually
2017-01-16 21:23:24 +00:00
Download the example [or clone the repo ](https://github.com/zeit/next.js ):
2016-12-22 05:10:54 +00:00
```bash
2017-12-07 02:12:42 +00: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 09:07:54 +00:00
cd shared-modules
2016-12-22 05:10:54 +00:00
```
2016-11-28 00:15:56 +00:00
2016-12-22 23:05:49 +00:00
Install it and run:
2016-12-22 05:10:54 +00:00
```bash
2016-11-28 00:15:56 +00:00
npm install
2016-12-22 23:05:49 +00:00
npm run dev
2016-12-22 05:10:54 +00:00
```
2016-12-22 23:05:49 +00:00
Deploy it to the cloud with [now ](https://zeit.co/now ) ([download](https://zeit.co/download))
2016-12-22 05:10:54 +00:00
```bash
2016-12-22 23:05:49 +00:00
now
2016-11-28 00:15:56 +00:00
```
2016-12-22 05:10:54 +00: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