O ficheiro de configuração do Nuxt
Por padrão, o Nuxt está configurado para cobrir a maior parte dos casos de uso. Esta configuração pode ser sobrescrita com o ficheiro nuxt.config.js.
nuxt.config.js
A propriedade alias
Esta opção permite você definir apelidos que estarão disponíveis dentro do seu JavaScript e CSS.
import { resolve } from 'path'
export default {
  alias: {
    'style': resolve(__dirname, './assets/style')
  }
}
 A propriedade build
Esta opção permite você configurar várias definições para o passo build, incluindo loaders, filenames, a configuração do webpack e transpilation.
export default {
  build: {
    /*
     ** Você pode estender a configuração do webpack aqui
     */
    extend(config, ctx) {}
  }
}
 A propriedade css
Esta opção permite você definir os ficheiros CSS, módulos e bibliotecas que você quiser incluir globalmente (em todas páginas).
export default {
  css: ['~/assets/css/main.css', '~/assets/css/animations.scss']
}
 Você pode omitir a extensão para CSS, SCSS, PostCSS, LESS, Stylus, ... ficheiros listados dentro o array css dentro do seu ficheiro de configuração do nuxt.
export default {
  css: ['~/assets/css/main', '~/assets/css/animations']
}
 Ao omitir a extensão, se você tiver um ficheiro css e decidir mudar para usar sass por exemplo, você não terá de atualizar o seu nuxt.config.js assim ele usará a nova extensão uma vez que nome do ficheiro permanece o mesmo.
A propriedade dev
Esta opção permite você definir o modo de development (desenvolvimento) ou production (produção) do Nuxt (importante para quando você usar o Nuxt programaticamente).
export default {
  dev: process.env.NODE_ENV !== 'production'
}
 A propriedade env
Esta opção permite você definir variáveis de ambientes que são requeridas no momento da construção (ao invés do momento de execução) tais como NODE_ENV=staging ou VERSION=1.2.3. Contudo, para as variáveis do tempo de execução o runtimeConfig é requerido.
export default {
  env: {
    baseURL: process.env.BASE_URL
  }
}
 A propriedade runtimeConfig
A configuração do tempo de execução tem suporte embutido ao dotenv para uma segurança melhor e rápido desenvolvimento. A configuração do tempo de execução é adicionada ao payload do Nuxt assim não há necessidade de reconstruir no sentido de atualizar a configuração do tempo de execução quando estiver trabalhando em desenvolvimento ou com a renderização no lado do servidor ou com apenas aplicações no lado do cliente. (Para sites estáticos você continuará a precisar regerar o seu site para ver as mudanças).
Suporte ao ponto env
Se você tiver um ficheiro .env dentro do diretório raiz do seu projeto, ele será automaticamente carregado dentro do process.env e acessível dentro do seu nuxt.config/serverMiddleware e quaisquer outros ficheiros que eles importar.
Você pode personalizar o caminho ao usar --dotenv <file> ou desativar completamente com --dotenv false. Por exemplo, você pode especificar um ficheiro diferente .env em ambientes de produção, montagem ou desenvolvimento.
A propriedade publicRuntimeConfig
- deve carregar todas variáveis de ambientes que são publicas assim esses serão expostas no frontend. Isto pode incluir uma referência para sua URL pública por exemplo.
 - 
está disponível ao usar 
$configdentro de ambos servidor e cliente. 
export default {
  publicRuntimeConfig: {
    baseURL: process.env.BASE_URL || 'https://nuxtjs.org'
  }
}
 A propriedade privateRuntimeConfig
- deve carregar todas variáveis de ambiente que são privadas e que não devem ser expostas no frontend. Isto pode incluir uma referência para os seus símbolos secretos da API por exemplo.
 - 
apenas está disponível no servidor ao usar o mesmo 
$config(ele sobrescreve o publicRuntimeConfig) 
export default {
  privateRuntimeConfig: {
    apiSecret: process.env.API_SECRET
  }
}
 Usando seus valores de configuração:
Você pode então acessar esses valores em qualquer lugar ao usar o contexto dentro de suas páginas, memória, componentes e plugins ao usar this.$config ou context.$config.
<script>
  asyncData ({ $config: { baseURL } }) {
    const posts = await fetch(`${baseURL}/posts`)
      .then(res => res.json())
  }
</script>
 Dentro dos seus modelos você pode acessar suas configurações de tempo de execução diretamente usando $config.*
<template>
  <p>Our Url is: {{ $config.baseURL}}</p>
</template>
 $config fora de um contexto de apenas servidor (por exemplo, se você usar $config dentro do fetch, asyncData ou diretamente dentro do seu modelo).A propriedade generate
Esta opção permite você definir valores de parâmetros para cada rota dinâmica dentro da sua aplicação que será transformada em ficheiros HTML pelo Nuxt.
export default {
  generate: {
    dir: 'gh_pages', // gh_pages/ ao invés de dist/
    subFolders: false // Ficheiros HTML são gerados de acordo com caminho da rota
  }
}
 head
export default {
    head: {
    title: 'my title',
    meta: [
      { charset: 'utf-8' },
            .....
        ]
    }
}
 Esta opção permite você definir todas as metas tags padrão para sua aplicação.
A propriedade loading
Esta opção permite você personalizar o componente de carregamento que o Nuxt usa por padrão.
export default {
  loading: {
    color: '#fff'
  }
}
 A propriedade modules
Com esta opção você pode adicionar módulos de Nuxt ao seu projeto.
export default {
  modules: ['@nuxtjs/axios']
}
 A propriedade modulesDir
A propriedade modelesDir é usada para definir os diretórios dos módulos para resolução do caminho. Por exemplo: resolveLoading, nodeExternals e postcss do webpack. O caminho de configuração é relativo ao options.rootDir (padrão: process.cwd()).
export default {
  modulesDir: ['../../node_modules']
}
 Configurar este campo pode ser necessário se seu projeto está organizado como um espaço de trabalho de mono-repositório com Yarn.
A propriedade plugins
Esta opção permite você definir plugins escritos em JavaScript que devem ser executados antes da inicialização da raiz da aplicação Vue.js.
export default {
  plugins: ['~/plugins/url-helpers.js']
}
 A propriedade router
Com a opção router você pode sobrescrever a configuração padrão do Nuxt do Vue Router.
export default {
  router: {
    linkExactActiveClass: 'text-primary'
  }
}
 A propriedade server
Está opção permite você configurar as variáveis de conexão para a instância da sua aplicação Nuxt.
import path from 'path'
import fs from 'fs'
export default {
  server: {
    https: {
      key: fs.readFileSync(path.resolve(__dirname, 'server.key')),
      cert: fs.readFileSync(path.resolve(__dirname, 'server.crt'))
    }
  }
}
 A propriedade srcDir
Esta opção permite você definir o diretório fonte da sua aplicação Nuxt.
export default {
  srcDir: 'client/'
}
 Exemplo da estrutura do projeto com a sua aplicação Nuxt dentro do diretório client.
**-| app/
---| node_modules/
---| nuxt.config.js
---| package.json
---| client/
------| assets/
------| components/
------| layouts/
------| middleware/
------| pages/
------| plugins/
------| static/
------| store/**
 A propriedade dir
Esta opção permite você definir nomes personalizados dos seus diretórios do Nuxt.
export default {
  dir: {
    pages: 'views' // O Nuxt buscará pela pasta views/ ao invés da pasta pages/
  }
}
 A propriedade pageTransition
Esta opção permite você definir as propriedades de transições da página.
export default {
  pageTransition: 'page'
}
 Outros ficheiros de configuração
Além do nuxt.config.js podem haver outros ficheiros de configuração dentro da raíz do seu projeto, tais como o .eslintrc , prettier.config.json  ou .gitignore . Estes são usados para configurar outras ferramentas tais como o seu linter, formatador de código ou o seu repositório do git e independente do nuxt.config.js.
O ficheiro .gitignore
Dentro do seu ficheiro .gitignore você precisará adicionar os seguintes diretórios, assim eles serão ignorados e não adicionados ao controlo de versão. node_modules o qual é onde todos os seus módulos instalados estão. A pasta .nuxt a que é criada quando estiver executando os comandos dev ou build. A pasta dist é a pasta que é criada quando estiver executando o comando generate.
node_modules .nuxt dist
 O que segue
 
        N3-rd
       
 
        Adrien Zaganelli
       
 
        Mag
       
 
        Stefan Huber
       
 
        Olga Bulat
       
 
        Maciek Palmowski
       
 
        Sébastien Chopin
       
 
        Daniel Roe
       
 
        Clément Ollivier
       
 
        Paiva
       
 
        Florian Reuschel
       
 
        Rishi Raj Jain
       
 
        Savas Vedova
       
 
        Steven Soekha
       
 
        Vinícius Alves
       
 
        Kareem Dabbeet
       
 
        Valentín Costa
       
 
        Ryan Skinner
       
 
        Alex Hirzel
       
 
        Ajeet Chaulagain
       
 
        René Eschke
       
 
        Nico Devs
       
 
        Muhammad
       
 
        Nazaré da Piedade
       
 
        Naoki Hamada
       
 
        Tom
       
 
        Yann Aufray
       
 
        Anthony Chu
       
 
        Nuzhat Minhaz
       
 
        Lucas Portet
       
 
        Richard Schloss
       
 
        bpy
       
 
        Antony Konstantinidis
       
 
        Hibariya
       
 
        Jose Seabra
       
 
        Eze
       
 
        Florian LEFEBVRE
       
 
        Lucas Recoaro
       
 
        Julien SEIXAS
       
 
        Hugo
       
 
        Sylvain Marroufin
       
 
        Spencer Cooley
       
 
        Piotr Zatorski
       
 
        Vladimir Semyonov
       
 
        Harry Allen
       
 
        kazuya kawaguchi
       
 
        Unai Mengual
       
 
        Hyunseung
       
 
        Alexandre Chopin
       
 
        pooya parsa
       
 
        Nick Medrano
       
 
        Mosaab Emam
       
 
        Ilja
       
 
        Heitor Ramon Ribeiro
       
 
        Nero
       
 
        Yoon Han