2017-01-02 18 views
12

Uruchomiłem bardzo prostą konfigurację pakietu Web poniżej w stosunku do frontendu vue.js. Plik bundle.js został skompilowany, ale nadal generuje ostrzeżenie "Jesteś uruchomiony Vue w trybie programowania". Postępowałem zgodnie z radą podaną here, ale to niczego nie zmienia.Webpack kompilowanie vue z NODE_ENV = produkcja nadal powoduje ostrzeżenie dev

Jakieś pomysły, co się dzieje?

To jest moje 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' 
    } 
} 
} 

Odpowiedz

21

Którą wersję Vue używasz? Jeśli jest Vue 2.1.0 lub wyższy, sprawdź tę odpowiedź:

Prawdopodobnie używasz plik vue.js zamiast pliku vue.common.js.

Do bezpośredniego użytku należy używać urządzenia vue.js dla dev i vue.min.js do produkcji. Oba te pliki mają środowisko odpowiednio oznaczone jako "rozwój" i "produkcja".

Dla pakietu WebPack należy zamiast tego użyć pliku vue.common.js, ponieważ będzie on obsługiwał zmienną process.env.NODE_ENV. W tym celu dodaj atrybut aliasu do pliku pakietu Webpack:

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

Masz rację, dziękuję. Zaktualizowałem moją odpowiedź. Nie bardzo wiem, dlaczego ma to sens w przypadku hardcode, ale na pewno istnieje dobry powód. – rix

+0

Ponieważ ktoś może korzystać z biblioteki bez węzła lub bez WebPack/Browserify. Na przykład ktoś może po prostu uwzględnić bibliotekę JS za pośrednictwem CDN, wtedy zmienna NODE_ENV zostanie zerwana. –

+1

Dzięki człowieku. To zadziałało. – CodeHacker

1

Jeśli używasz OSX (Unix) || Użytkownicy Linuksa

export NODE_ENV=production 

Windows powinni ustawić NODE_ENV użyciu

set NODE_ENV=production 

Czy na pewno ustawić NODE_ENV var? Sprawdź to.

echo $NODE_ENV 
6

Problem był robiłem:

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

Zamiast:

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

Różnica jest pierwszym jest sztywno do dev dlatego ostrzeżenia itp nie uzyskać okorowane .

+1

Te dwa produkty są identyczne. Wygląda na to, że jeden z nich się myli ;-) –

Powiązane problemy