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

时间:2017-01-02 17:47:46

标签: webpack vue.js

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

请问有什么想法吗?

这是我的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'
  }
}
}

3 个答案:

答案 0 :(得分:28)

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

您可能正在使用vue.js文件而不是vue.common.js文件。

要直接使用,您应该使用vue.js for dev和vue.min.js进行制作。这两个文件的环境分别硬编码为“开发”和“生产”。

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

module.exports = {
  ...
  resolve: {
    alias: {
      'vue$': 'vue/dist/vue.common.js'
    }
  },
  ...
}

答案 1 :(得分:7)

我正在做的问题:

import Vue from 'vue/dist/vue.js'

而不是:

import Vue from 'vue/dist/vue.common.js'

差异是第一个被硬编码为dev,这就是为什么警告不会被剥夺。

答案 2 :(得分:1)

如果您使用的是OSX(Unix)|| Linux的

export NODE_ENV=production

Windows用户应使用

设置NODE_ENV
set NODE_ENV=production

您确定要设置NODE_ENV var吗?检查一下。

echo $NODE_ENV