0.1.11 • Published 3 years ago

@giangmv/nuxt-generator v0.1.11

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

API Platform Client Generator

generator to scaffold app with Create-Retrieve-Update-Delete features for any API documentation for:

  • Nuxt.js
  • Vue.js
  • Vuetify.js

Create Nuxt

  1. Create project
npx create-nuxt-app your-app-name
  1. Set up project

Project name: your-app-name Programming language: JavaScript Package manager: Yarn UI framework: Vuetify.js Nuxt.js modules: None Linting tools: Prettier, Lint staged files Testing framework: None Rendering mode: Single Page App Deployment target: Static (Static/JAMStack hosting)

  1. Intall package
npm i moment lodash vue-i18n vuelidate vuex-map-fields nuxt-i18n
npm i --dev @nuxtjs/vuetify @nuxtjs/fontawesom
  1. Config
  • nuxt.config.js
  buildModules: [
    // ...
    '@nuxtjs/vuetify',
    '@nuxtjs/fontawesome',
    'nuxt-i18n'
  ],
  // ...
  // to avoid name conflicts in generators
  components: false, 
  1. Generating Routes
npx @giangmv/vue-generator --generator nuxt --module module
  1. Updating default layout
  • create layouts/default.vue
<template>
  <v-app>
    <alert />
    <v-navigation-drawer v-model="drawer" app>
      <v-list dense>
        <v-list-item>
          <v-list-item-action>
            <v-icon>mdi-home</v-icon>
          </v-list-item-action>
          <v-list-item-content>
            <v-list-item-title>Home</v-list-item-title>
          </v-list-item-content>
        </v-list-item>
        <v-list-item>
          <v-list-item-action>
            <v-icon>mdi-book</v-icon>
          </v-list-item-action>
          <v-list-item-content>
            <v-list-item-title>
              <nuxt-link :to="{ name: 'books' }">Books</nuxt-link>
            </v-list-item-title>
          </v-list-item-content>
        </v-list-item>
        <v-list-item>
          <v-list-item-action>
            <v-icon>mdi-comment-quote</v-icon>
          </v-list-item-action>
          <v-list-item-content>
            <v-list-item-title>
              <nuxt-link :to="{ name: 'reviews' }">Reviews</nuxt-link>
            </v-list-item-title>
          </v-list-item-content>
        </v-list-item>
      </v-list>
    </v-navigation-drawer>
    <v-app-bar app color="indigo" dark>
      <v-app-bar-nav-icon @click.stop="drawer = !drawer"></v-app-bar-nav-icon>
      <v-toolbar-title>Application</v-toolbar-title>
    </v-app-bar>

    <v-main>
      <nuxt />
    </v-main>
    <v-footer color="indigo" app>
      <span class="white--text">&copy; {{ date }}</span>
    </v-footer>
  </v-app>
</template>

<script>
import Alert from '../components/Alert'

export default {
  components: {
    Alert
  },

  data: () => ({
    date: null,
    drawer: null
  }),

  mounted () {
    this.date = new Date().getFullYear()
  }
}
</script>

Create Vue

  1. Create project
vue init webpack-simple my-app
  1. Intall package
npm i vue-router vuex vuex-map-fields babel-plugin-transform-builtin-extend babel-preset-es2015 babel-preset-stage-2 lodash
npm i bootstrap font-awesome
  1. Config
  • .babelrc
// .babelrc
{
  "presets": [
    ["es2015", { "modules": false }],
    ["stage-2"]
  ],
  "plugins": [
    ["babel-plugin-transform-builtin-extend", {
      globals: ["Error", "Array"]
    }]
  ]
}
  1. Generating Routes
npx @giangmv/vue-generator --generator vue --module module
  1. Updating default layout
  • create main.js
import Vue from 'vue'
import Vuex from 'vuex';
import VueRouter from 'vue-router';
import App from './App.vue';
import 'bootstrap/dist/css/bootstrap.css';
import 'font-awesome/css/font-awesome.css';
import book from './store/modules/book/';
import bookRoutes from './router/book';

Vue.config.productionTip = false;

Vue.use(Vuex);
Vue.use(VueRouter);

const store = new Vuex.Store({
  modules: {
    book,
  }
});

const router = new VueRouter({
  mode: 'history',
  routes: [
      ...bookRoutes,
  ],
});

new Vue({
  store,
  router,
  render: h => h(App),
}).$mount('#app');

Features

  • Generate high-quality TypeScript or ES6 components:
    • List view
    • Creation form
    • Editing form
    • Deletion button

Credits

Created by Giangmv

0.1.11

3 years ago

0.1.10

3 years ago

0.1.9

3 years ago

0.1.8

3 years ago

0.1.7

3 years ago

0.1.6

3 years ago

0.1.5

3 years ago

0.1.4

3 years ago

0.1.3

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago