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 ab56a29ee6
Merge pull request #2105 from clarkdo/spa_layout
fix(spa): redundant laoding default layout when custom layout specified
2017-11-14 10:04:03 +01:00
.circleci fix(circleCI): puppeteer support 2017-10-30 00:00:54 +03:30
benchmarks add: Add benchmarks 2017-10-28 14:09:05 +02:00
bin lint: Lint files 2017-10-31 14:16:40 +01:00
build Remove preset-es2015 dependency (#1698) 2017-09-21 05:02:40 +04:30
examples Merge pull request #2035 from clarkdo/with-buefy 2017-11-08 10:00:20 +01:00
lib Merge pull request #2105 from clarkdo/spa_layout 2017-11-14 10:04:03 +01:00
start package: Upgrade dependencies 2017-11-06 13:32:43 +01:00
test Merge pull request #2105 from clarkdo/spa_layout 2017-11-14 10:04:03 +01:00
.editorconfig Add editorconfig 2016-12-15 18:47:20 +01:00
.eslintignore refactor: add examples to lint 2017-10-31 21:43:55 +08:00
.eslintrc.js lint: Update linting rule on space-before-paren 2017-10-30 17:51:11 +01:00
.gitignore update gitignore 2017-10-14 13:03:03 -04:00
.npmrc use yarnpkg registry 2017-09-24 18:39:38 +08:00
.travis.yml feat: cache dependencies in ci building 2017-10-20 10:50:22 +03:30
appveyor.yml feat: cache dependencies in ci building 2017-10-20 10:50:22 +03:30
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2017-10-20 10:32:44 +02:00
CONTRIBUTING.md Update and rename contributing.md to CONTRIBUTING.md 2017-10-20 10:34:47 +02:00
index.js eslint 2017-06-27 22:30:03 +04:30
LICENSE.md Update LICENSE.md 2017-02-23 15:57:53 +00:00
package.json add caniuse-lite dependency 2017-11-07 14:01:53 +03:30
README.md Update roadmap link 2017-11-02 12:31:48 +01:00
yarn.lock add caniuse-lite dependency 2017-11-07 14:01:53 +03:30

Build Status Windows Build Status  Coverage Status Downloads Version License Gitter

Support us

Nuxt.js is a Versatile Vue.js Framework

🚧 Under active development, 1.0 will be released soon 🔥

Sponsors

Become a sponsor and get your logo on our README on Github with a link to your site. [Become a sponsor]

Backers

Support us with a monthly donation and help us continue our activities. [Become a backer]

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
  • Middleware
  • Code splitting via webpack

Learn more at nuxtjs.org.

Templates

You can start by using one of our starter templates:

  • starter: Basic Nuxt.js project template
  • express: Nuxt.js + Express
  • koa: Nuxt.js + Koa
  • adonuxt: Nuxt.js + AdonisJS
  • micro: Nuxt.js + Micro
  • nuxtent: Nuxt.js + Nuxtent module for content heavy sites

Using nuxt.js programmatically

const { Nuxt, Builder } = require('nuxt')

// Import and set nuxt.js options
let config = require('./nuxt.config.js')
config.dev = !(process.env.NODE_ENV === 'production')

let nuxt = new Nuxt(config)

// Start build process (only in development)
if (config.dev) {
  new Builder(nuxt).build()
}

// You can use nuxt.render(req, res) or nuxt.renderRoute(route, context)

Learn more: https://nuxtjs.org/api/nuxt

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 middleware since it will handle the rendering of your web application and won't call next().

app.use(nuxt.render)

Learn more: https://nuxtjs.org/api/nuxt-render

Render a specific route

This is mostly used for nuxt generate and test purposes but you might find 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 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
})

Learn more: https://nuxtjs.org/api/nuxt-render-route

Examples

Please take a look at https://nuxtjs.org/examples

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.

Roadmap

https://trello.com/b/lgy93IOl/nuxtjs-10

Contributing

Please see our CONTRIBUTING.md