Nuxt is an intuitive and extendable way to create type-safe, performant and production-grade full-stack web apps and websites with Vue 3.
Go to file
Sébastien Chopin 3d083afc3d Merge pull request #118 from couac/patch-1
correct miswording
2017-01-11 00:59:47 +01:00
bin Set color for debug module 2016-12-15 18:48:31 +01:00
examples Update examples 2017-01-09 15:10:29 +01:00
lib Fix server build with CSS modules 2017-01-09 15:10:29 +01:00
test Add tests for async/await 2016-12-27 16:31:25 +01:00
.editorconfig Add editorconfig 2016-12-15 18:47:20 +01:00
.eslintrc.js added no-console to eslint 2016-12-08 09:41:20 -06:00
.gitignore travis and coverage 2016-12-09 18:53:55 +01:00
.travis.yml Force npm3 2016-12-16 10:09:51 +01:00
LICENSE.md Update LICENSE.md 2016-11-24 13:19:04 +01:00
package.json Upgrade dependencies 2017-01-04 16:09:44 +01:00
README.md correct miswording 2017-01-10 22:48:23 +01:00
webpack.config.js remove babel-polyfill 2016-12-27 14:55:33 +01:00

Build Status Coverage Status Downloads Version License Gitter

> Nuxt.js is a minimalistic framework for server-rendered Vue applications (inspired by [Next.js](https://github.com/zeit/next.js))

🚧 Under active development, 1.0 will be released soon 🔥

Getting started

$ npm install nuxt --save

Add a script to your package.json like this:

{
  "scripts": {
    "start": "nuxt"
  }
}

After that, the file-system is the main API. Every .vue file becomes a route that gets automatically processed and rendered.

Populate ./pages/index.vue inside your project:

<template>
  <h1>Hello {{ name }}!</h1>
</template>

<script>
export default {
  data: () => {
    return { name: 'world' }
  }
}
</script>

And then run:

npm start

Go to http://localhost:3000

So far, we get:

  • Automatic transpilation and bundling (with webpack and babel)
  • Hot code reloading
  • Server rendering and indexing of pages/
  • Static file serving. ./static/ is mapped to /
  • Configurable with a nuxt.config.js file
  • Custom layouts with the layouts/ directory
  • Code splitting via webpack

Using nuxt.js programmatically

const Nuxt = require('nuxt')

// Launch nuxt build with given options
let config = require('./nuxt.config.js')
let nuxt = new Nuxt(config)
nuxt.build()
.then(() => {
  // You can use nuxt.render(req, res) or nuxt.renderRoute(route, context)
})
.catch((e) => {
  // An error happened during the build
})

Using nuxt.js as a middleware

You might want to use your own server with you configurations, your API and everything awesome your created with. That's why you can use nuxt.js as a middleware. It's recommended to use it at the end of your middlewares since it will handle the rendering of your web application and won't call next()

app.use(nuxt.render)

Render a specific route

This is mostly used for nuxt generate and tests purposes but you might found another utility!

nuxt.renderRoute('/about', context)
.then(function ({ html, error }) {
  // You can check error to know if your app displayed the error page for this route
  // Useful to set the correct status status code if an error appended:
  if (error) {
    return res.status(error.statusCode || 500).send(html)
  }
  res.send(html)
})
.catch(function (error) {
  // And error appended while rendering the route
})

Examples

Please take a look at the examples/ directory.

Production deployment

To deploy, instead of running nuxt, you probably want to build ahead of time. Therefore, building and starting are separate commands:

nuxt build
nuxt start

For example, to deploy with now a package.json like follows is recommended:

{
  "name": "my-app",
  "dependencies": {
    "nuxt": "latest"
  },
  "scripts": {
    "dev": "nuxt",
    "build": "nuxt build",
    "start": "nuxt start"
  }
}

Then run now and enjoy!

Note: we recommend putting .nuxt in .npmignore or .gitignore.