All Projects → staven630 → nuxt-config

staven630 / nuxt-config

Licence: other
Nuxt.js全面配置(持续更新中……)

Programming Languages

Vue
7211 projects
javascript
184084 projects - #8 most used programming language
CSS
56736 projects

Projects that are alternatives of or similar to nuxt-config

nuxt-stencil
Easy Stencil.js component library integration with Nuxt.js.
Stars: ✭ 16 (-76.12%)
Mutual labels:  nuxt, nuxtjs
bodymoji
Draws an emoji on your face! Powered by Nuxt.js, Tensorflow.js and Posenet
Stars: ✭ 21 (-68.66%)
Mutual labels:  nuxt, nuxtjs
nuxt-basic-blog
A set of starter blog templates to use with Nuxt.
Stars: ✭ 47 (-29.85%)
Mutual labels:  nuxt, nuxtjs
website
My personal website and blog. Made with Nuxt.js and WindiCSS.
Stars: ✭ 19 (-71.64%)
Mutual labels:  nuxt, nuxtjs
nuxt-mail
Adds email sending capability to a Nuxt.js app. Adds a server route, an injected variable, and uses nodemailer to send emails.
Stars: ✭ 62 (-7.46%)
Mutual labels:  nuxt, nuxtjs
nuxt-seomatic-meta
A module for connecting Nuxt.js to the Craft CMS SEOmatic plugin via GraphQL. Nuxt-o-matic!
Stars: ✭ 28 (-58.21%)
Mutual labels:  nuxt, nuxtjs
supabase
An easy way to integrate Supabase with NuxtJS
Stars: ✭ 39 (-41.79%)
Mutual labels:  nuxt, nuxtjs
nuxt-modules-cli
Browse Nuxt.js modules from the terminal
Stars: ✭ 25 (-62.69%)
Mutual labels:  nuxt, nuxtjs
nuxt-winston-log
Nuxt module for logging SSR errors using winston
Stars: ✭ 41 (-38.81%)
Mutual labels:  nuxt, nuxtjs
nuxt-ecommerce
🛍 Ecommerce Store with Nuxt
Stars: ✭ 82 (+22.39%)
Mutual labels:  nuxt, nuxtjs
static-website
🖥 New Vue/Nuxt website for cdnjs.com - The #1 free and open source CDN built to make life easier for developers.
Stars: ✭ 47 (-29.85%)
Mutual labels:  nuxt, nuxtjs
Ocelot-Social
Free and open-source social network for active citizenship.
Stars: ✭ 49 (-26.87%)
Mutual labels:  nuxt, nuxtjs
nuxt-modules
AX2's Nuxt modules
Stars: ✭ 30 (-55.22%)
Mutual labels:  nuxt, nuxtjs
laravel-nuxt
Laravel 5.6 + Nuxt 1.4: Auth Starter (SSR, SPA, Socialite)
Stars: ✭ 19 (-71.64%)
Mutual labels:  nuxt, nuxtjs
nuxtjs-sample
Nuxtjs sample! Typescript + Vuetify + Jest! (rails api server: https://github.com/walkersumida/rails-api-for-front)
Stars: ✭ 28 (-58.21%)
Mutual labels:  nuxt, nuxtjs
nuxt-humans-txt
🧑🏻👩🏻 "We are people, not machines" - An initiative to know the creators of a website. Contains the information about humans to the web building - A Nuxt Module to statically integrate and generate a humans.txt author file - Based on the HumansTxt Project.
Stars: ✭ 27 (-59.7%)
Mutual labels:  nuxt, nuxtjs
nuxt-vite
Nuxt + Vite!! HMR so fast it'll make your head spin! Plus all the benefits of Nuxt
Stars: ✭ 54 (-19.4%)
Mutual labels:  nuxt, nuxtjs
nuxt-ghost
Easy Ghost content API integration with Nuxt.js.
Stars: ✭ 27 (-59.7%)
Mutual labels:  nuxt, nuxtjs
nuxt-stripejs
💳 NuxtJS module for Stripe.js which loads only when required and w/ retry mechanism
Stars: ✭ 17 (-74.63%)
Mutual labels:  nuxt, nuxtjs
nuxt-jsonld
A Nuxt.js module to manage JSON-LD in Vue component.
Stars: ✭ 198 (+195.52%)
Mutual labels:  nuxt, nuxtjs

Nuxt.js 全面配置(持续更新中)

其他系列

vue-cli3 全面配置

目录

☞ 初始化项目

npx create-nuxt-app <项目名>
或
npx create-nuxt-app <项目名>

▲ 回顶部

☞ 环境变量配置

  可以配置在客户端和服务端共享的环境变量

module.exports = {
  env: {
    baseUrl: process.env.BASE_URL || 'http://localhost:3000'
  }
}

  通过以下两种方式来使用 baseUrl 变量

  1. 通过 process.env.baseUrl
  2. 通过 context.baseUrl,请参考context api

▲ 回顶部

☞ 打包分析

  package.json 中添加 analyze 命令

"analyze": "nuxt build --analyze"

  修改 nuxt.config.js

export default {
  build: {
    analyza: {
      analyzeMode: 'static'
    }
  }
}

▲ 回顶部

☞ 提供全局 scss 变量

  • 方法一:
npm i -S @nuxtjs/style-resources
npm i -D sass-loader node-sass

  修改 nuxt.config.js

export default {
  modules: [
    '@nuxtjs/style-resources',
  ],
  styleResources: {
    scss: '~/assets/scss/variable.scss'
  }
}
  • 方法二:
npm i -D nuxt-sass-resources-loader sass-loader node-sass

  修改 nuxt.config.js

export default {
  modules: [
    ['nuxt-sass-resources-loader', ['~/assets/scss/variable.scss']]
  ],
  styleResources: {
    scss: '~/assets/scss/variable.scss'
  }
}

▲ 回顶部

☞ 按需引入 element-ui

npm i -D babel-plugin-component
// or
yarn add -D babel-plugin-component

  修改 nuxt.config.js

module.exports = {
  plugins: ['@/plugins/element-ui'],
  build: {
    babel: {
      plugins: [
        [
          'component',
          { libraryName: 'element-ui', styleLibraryName: 'theme-chalk' }
        ]
      ]
    }
  },
}

  修改 plugins/element-ui.js

import Vue from 'vue'
import {
  Button, Loading, Notification, Message, MessageBox
} from 'element-ui'

import lang from 'element-ui/lib/locale/lang/zh-CN'
import locale from 'element-ui/lib/locale'

// configure language
locale.use(lang)

// set
Vue.use(Loading.directive)
Vue.prototype.$loading = Loading.service
Vue.prototype.$msgbox = MessageBox
Vue.prototype.$alert = MessageBox.alert
Vue.prototype.$confirm = MessageBox.confirm
Vue.prototype.$prompt = MessageBox.prompt
Vue.prototype.$notify = Notification
Vue.prototype.$message = Message

// import components
Vue.use(Button);
// or
// Vue.component(Button.name, Button)

▲ 回顶部

☞ 配置 hard-source-webpack-plugin

npm i -D hard-source-webpack-plugin

  修改 nuxt.config.js

module.exports = {
  build: {
    extractCSS: true,
    extend(config, ctx) {
      if (ctx.isDev) {
        config.plugins.push(
          new HardSourceWebpackPlugin({
            cacheDirectory: '.cache/hard-source/[confighash]'
          })
        )
      }
    }
  }
}

▲ 回顶部

☞ 去除多余 css

npm i --D glob-all purgecss-webpack-plugin

  若安装失败,请先用管理员身份安装以下全局依赖

npm install --global windows-build-tools
或
yarn global add windows-build-tools

  修改 nuxt.config.js

const PurgecssPlugin = require('purgecss-webpack-plugin')
const glob = require('glob-all')
const path = require('path')
const resolve = dir => path.resolve(__dirname, dir);

module.exports = {
  build: {
    extractCSS: true,
    extend(config, ctx) {
      if (!ctx.isDev) {
        config.plugins.push(
          new PurgecssPlugin({
            paths: glob.sync([
              resolve('./pages/**/*.vue'),
              resolve('./layouts/**/*.vue'),
              resolve('./components/**/*.vue')
            ]),
            extractors: [
              {
               extractor: class Extractor {
                  static extract(content) {
                    const validSection = content.replace(
                      /<style([\s\S]*?)<\/style>+/gim,
                      ""
                    );
                    return validSection.match(/[A-Za-z0-9-_:/]+/g) || [];
                  }
                },
                extensions: ['vue']
              }
            ],
            whitelist: ['html', 'body', 'nuxt-progress']
          })
        )
      }
    }
  }
}

▲ 回顶部

☞ Brotli 压缩

npm i shrink-ray-current

  若安装失败,请先用管理员身份安装以下全局依赖

npm install --global windows-build-tools
或
yarn global add windows-build-tools

  修改 nuxt.config.js

export default {
  render: {
    http2: {
      push: true
    },
    compressor: shrinkRay()
  }
}

▲ 回顶部

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].