Webpack使用NODE_ENV = production编译vue仍导致dev警告

rix*_*rix 18 webpack vue.js

我在下面针对vue.js前端运行一个非常简单的web pack配置.bundle.js已编译但仍生成"您正在开发模式下运行Vue"警告.我遵循了这里指定的建议,但它没有改变任何东西.

有什么想法吗?

这是我的webpack.config.js:

var webpack = require('webpack')

module.exports = {
entry: './www/src/js/main.js',
output: {
  path: "./www/static/js",
  filename: "bundle.js"
},
plugins: [
  new webpack.DefinePlugin({
    'process.env': {
      NODE_ENV: '"production"'
  }
}),
new webpack.optimize.UglifyJsPlugin({
    compress: {
      warnings: false
    }
})
],
module: {
  loaders: [
    {
      test: /\.js$/,
      loader: 'babel',
      exclude: /node_modules/
    },
    {
      test: /\.vue$/,
      loader: 'vue'
    }
  ]
},
vue: {
  loaders: {
    js: 'babel'
  }
}
}
Run Code Online (Sandbox Code Playgroud)

Pau*_*que 28

您使用的是哪个版本的Vue?如果是Vue 2.1.0或更高版本,请检查以下答案:

可能您使用的是vue.js文件而不是vue.common.js文件.

对于直接使用,您应该使用vue.jsfor dev和vue.min.js生产.这两个文件的环境分别硬编码为"开发"和"生产".

对于WebPack,您应该使用该vue.common.js文件,因为它将处理该process.env.NODE_ENV变量.为此,请在webpack文件中添加别名属性:

module.exports = {
  ...
  resolve: {
    alias: {
      'vue$': 'vue/dist/vue.common.js'
    }
  },
  ...
}
Run Code Online (Sandbox Code Playgroud)


rix*_*rix 7

我正在做的问题是:

import Vue from 'vue/dist/vue.js'
Run Code Online (Sandbox Code Playgroud)

代替:

import Vue from 'vue/dist/vue.common.js'
Run Code Online (Sandbox Code Playgroud)

差异是第一个是硬编码到dev,这就是警告等不会被剥离的原因.