Lorsque j'exécute mon application Vue, la console affiche:
You are running Vue in development mode.
Make sure to turn on production mode when deploying for production.
See more tips at https://vuejs.org/guide/deployment.html
Alors maintenant, je veux vérifier si Vue est en développement à partir de mes modèles en utilisant:
console.log("mode is " + process.env.NODE_ENV)
Mais cela ne consigne que undefined
Existe-t-il un moyen différent de trouver le NODE_ENV dans Vue?
Mon config webpack a cette partie:
if (process.env.NODE_ENV === 'production') {
module.exports.devtool = '#source-map'
// http://vue-loader.vuejs.org/en/workflow/production.html
module.exports.plugins = (module.exports.plugins || []).concat([
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: '"production"'
}
}),
new webpack.optimize.UglifyJsPlugin({
sourceMap: true,
compress: {
warnings: false
}
}),
new webpack.LoaderOptionsPlugin({
minimize: true
})
])
}
Peut-être pertinent: j'utilise TypeScript, alors j'ai inclus cette déclaration de type:
declare var process: {
env: {
NODE_ENV: string
}
}
Webpack est utilisé pour presque tous mes projets Vue, je vérifie donc si webpackHotUpdate
est présent.
if (webpackHotUpdate) {
console.log('In Dev Mode');
}
Il est présent dans l'objet window
si le serveur de développement Webpack est en cours d'exécution.
Absolument la solution la plus simple consiste à vérifier le window.location de votre composant Vue. Cela ressemblerait à ceci:
if (window.location.href === 'YOUR DEVELOPMENT URL') {
//preset form values here
}
Si vous avez commencé avec vue-cli (webpack par défaut), cela devrait fonctionner:
connection: process.env.NODE_ENV === 'development'
? 'ws://localhost:5000'
: 'wss://myawsomeproject.org'
J'utilise habituellement:
if(window.location.href.indexOf("localhost") >= 0) {
// Development mode
}
Ou:
if(window.location.href.indexOf("localhost") < 0) {
// Production mode
}
En recherchant simplement une partie de l'URL de développement telle que localhost
, vous n'avez pas besoin d'être aussi spécifique avec le reste de l'adresse. Cela fonctionne n'importe où dans votre projet, contrairement à process.env.NODE_ENV
qui ne fonctionnera pas dans le fichier index.html
par exemple.