Webpack компилирует vue с NODE_ENV = производство все еще приводит к предупреждению dev

Я запускаю чрезвычайно простой пакет веб-папок ниже с vend.js frontend. Компонент 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'
  }
}
}

Ответ 1

Какую версию Vue вы используете? Если это Vue 2.1.0 или выше, проверьте этот ответ:

Возможно, вы используете файл vue.js вместо файла vue.common.js.

Для прямого использования вы должны использовать vue.js для dev и vue.min.js для производства. Оба этих файла имеют среду, жестко закодированную как "разработка" и "производство", соответственно.

Для WebPack вместо этого вы должны использовать файл vue.common.js, потому что он будет обрабатывать переменную process.env.NODE_ENV. Для этого добавьте в файл webpack атрибут псевдонима:

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

Ответ 2

Проблема была в том, что я делал:

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

Вместо:

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

Отличие в том, что первое является жестко запрограммированным для dev, поэтому предупреждения и т.д. не удаляются.

Ответ 3

Если вы используете OSX (Unix) || Linux

export NODE_ENV=production

Пользователям Windows следует установить NODE_ENV с помощью

set NODE_ENV=production

Вы уверены, что задаете свой NODE_ENV var? Проверьте его.

echo $NODE_ENV