J'essaie d'exécuter le serveur de dev hot sur notre site avec webpack; le site utilise ReactJS, qui contient ce code:
if (\"production\" !== process.env.NODE_ENV) // etc
Si vous ne lancez pas le remplacement à chaud, c'est bien, mais avec le remplacement à chaud, il s'exécute, ce qui entraîne l'erreur:
TypeError: process.env is undefined
Le code ressemble à ceci:
Le projet est modélisé d'après https://github.com/webpack/react-starter qui fonctionne ; donc la question est; Quelle erreur ai-je commise dans le fichier de configuration et/ou comment rechercher l'erreur lorsque la compilation "de production" fonctionne correctement?
J'ai posté le résumé du fichier de configuration du webpack .
Dans votre configuration Webpack, deux options peuvent affecter process.env
:
config.target
(voir config.target
)process.env
Via DefinePlugin
En regardant votre code, il semble que process.env
Soit indéfini lorsque options.prerender
Et options.minimize
Sont tous deux false
.
Vous pouvez résoudre ce problème en utilisant toujours un environnement définissant process.env
(Ex: node
) ou en utilisant DefinePlugin
pour attribuer vous-même une valeur par défaut à la variable.
C'est le moyen le plus simple:
new webpack.EnvironmentPlugin( { ...process.env } )
Ajoutez cela à votre liste de plugins webpack.
Cette réponse a eu plus de sens pour moi. Poster pour les autres avec le même besoin d'un exemple complet.