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-cloud9
Juan Olvera 7e12997af6 Test updater script on examples folder (#5993)
I wrote a [script](https://github.com/j0lv3r4/dependency-version-updater) to update dependencies recursively in `package.json` files, e.g.:

```
$ node index.js --path="./examples" --dependencies="react=^16.7.0,react-dom=^16.7.0"
```

This PR contains the result against the examples folder.
2019-01-05 12:19:27 +01:00
..
pages Run yarn lint —fix 2018-10-20 19:37:42 +02:00
package.json Test updater script on examples folder (#5993) 2019-01-05 12:19:27 +01:00
README.md Add cloud9 (c9.io) to examples (#5448) 2018-10-20 16:58:21 +02:00
server.js Run yarn lint —fix 2018-10-20 19:37:42 +02:00

With Cloud 9 (c9.io)

Install NVM and set node to the latest version

Cloud 9 environment comes with a preinstalled nvm, but its better to use the latest version - follow the install instructions from the NVM Github page

Then download nvm package for the latest available node version and set it as default. For example, if the latest is 10.12.0, use the following commands:

nvm install 10.12.0
nvm alias default 10.12.0
nvm use node

Create a custom 'server.js' in the project root directory

// This file doesn't go through babel or webpack transformation.
// Make sure the syntax and sources this file requires are compatible with the current node version you are running
// See https://github.com/zeit/next.js/issues/1245 for discussions on Universal Webpack or universal Babel
const { createServer } = require('http')
const { parse } = require('url')
const next = require('next')

const dev = process.env.NODE_ENV !== 'production'
const app = next({ dev })
const handle = app.getRequestHandler()

app.prepare().then(() => {
  let server = createServer((req, res) => {
    // Be sure to pass `true` as the second argument to `url.parse`.
    // This tells it to parse the query portion of the URL.
    const parsedUrl = parse(req.url, true)
    const { pathname, query } = parsedUrl

    handle(req, res, parsedUrl)
  }).listen(process.env.PORT, process.env.IP || "0.0.0.0", err => {
    if (err) throw err
    let addr = server.address();
    console.log("> Ready on http://", addr.address + ":" + addr.port);
  })
})

Change 'package.json' scripts to use that file

"scripts": {
    "dev": "node server.js",
    "build": "next build",
    "start": "NODE_ENV=production node server.js"
}

Use dev preview within the Cloud9 VM IDE

After starting up the server (by using 'Run' button while having server.js open in the IDE editor or by using "npm run dev" in terminal) you should be able to access web server by clicking on "Preview" -> "Preview running application" next to 'Run' button in the top menu in Cloud9 IDE.