webpack打包vue應用時,在正式環境下去除警告等信息

webpack打包vue應用時,在正式環境下去除警告等信息

vue中檢測運行環境示例

vue在運行的時候會檢測NODE_ENV是否爲production,從而肯定是否要進行警告的顯示,例以下面是entry-runtime-with-compiler中的一段代碼:javascript

/* istanbul ignore if */
if (el === document.body || el === document.documentElement) {
  process.env.NODE_ENV !== 'production' && warn(
    `Do not mount Vue to <html> or <body> - mount to normal elements instead.`
  )
  return this
}

這一段代碼中檢測了vue實例是不是綁定到了htmlbody元素上,若是綁定在了這兩個元素上,而且運行環境不是生成環境就會顯示下邊的警告信息。html

webpack 打包時指定NODE_ENV 從而不顯示警告等信息

有一些log信息的輸出建議使用uglifyjs進行代碼壓縮,在壓縮的時候指定不輸出log信息。vue

webpack 的相關配置以下java

module.exports = {
  ...
  plugins: [
    new webpack.DefinePlugin({
      'process.env': {
        NODE_ENV: '"production"'
      }
    })
  ]
  ...
}

運行了,結果沒什麼用,仍是有輸出通過一番搜索以後發現:webpack

  1. 若是是直接使用的,則應該在開發環境用vue.js,而在正式環境使用vue.min.js
  2. 若是是使用webpack的,則應該使用vue.common.js進行替代,個人相關配置以下:
module.exports = {
  ...
  resolve: {
    alias: {
      vue: 'vue/dist/vue.common.js',
    }
  }
  ...
}

而後再進行打包,運行以後發現就沒有警告等信息了。web

相關文章
相關標籤/搜索