Nuxt.js 開發筆記 - 組態檔 nuxt.config.js

說明文件:https://nuxtjs.org/guide/configuration

nuxt.config.js 的內容大概長這樣

module.exports = {
  /*
  ** Headers of the page
  */
  head: {
    title: 'my-project',
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      { hid: 'description', name: 'description', content: 'Nuxt.js project' }
    ],
    link: [
      { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
    ]
  },
  /*
  ** Customize the progress bar color
  */
  loading: { color: '#3B8070' },
  /*
  ** Build configuration
  */
  build: {
    /*
    ** Run ESLint on save
    */
    extend (config, { isDev, isClient }) {
      if (isDev && isClient) {
        config.module.rules.push({
          enforce: 'pre',
          test: /\.(js|vue)$/,
          loader: 'eslint-loader',
          exclude: /(node_modules)/
        })
      }
    }
  }
}

 

主要的options說明:

  • build
    Object, 用來在vendor.bundle.js中增加模組,以減少bundle的體積,如果要使用第三方模組的話,可以用在這裡
  • css
    Array, 用來放 global 的css 檔案
  • dev
    Boolean, 用來定義網站屬於 Developement 還是 Production 狀態
  • env
    Object, 建立環境變數,這裡所定義的變數,可在Client 與 server 兩端之間共享(透過process.env.xxx)
  • generate
    Object, 定義動態route用,這需要另外為文說明
  • head
    Object, 用來設定預設的metatag
  • loading
    Boolean/Object/String, ,可設定loading bar的 高度/顏色等,如果設定為false的話,就不會顯示頁面上方的 loading bar
  • modules
    Array, 用來添加如 awesome.js / google-analytics 等模組
  • plugins
    Array, 要在vue.js 管控DOM之前執行的 javascript ,後續可透過 Vue.use來載入這些plugin,,關於plugin的 詳細文件
  • rootDir
    String, 用來定義workspace的路徑
  • router
    String, 用來改寫預設的 vue route ,及一些 如 linkActiveClass 或 middleware 之類的相關設定
  • srcDir
    String, 定義source 的目錄
  • transition
    String/Object, 用來定義頁面切換的方式,詳細文件