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