2017-08-08 3 views
0

Ce sont les bits de ma configuration de Webpack qui semblent être pertinents à ma question:UglifyJS semble interférer avec React dist utilisés dans la production

new webpack.EnvironmentPlugin(['NODE_ENV']), 

// Minify the code. 
new UglifyJSPlugin({ 
    compress: { 
    dead_code: true, 
    drop_debugger: true, 
    warnings: false 
    }, 
    output: { 
    comments: false 
    } 
}), 

J'utilise une version éjectée de la configuration de l'ARC qui semble assez la même et obtient son environnement vars de build.js - noter que je gardais cette condition

if (env['process.env'].NODE_ENV !== '"production"') { 
    throw new Error('Production builds must have NODE_ENV=production.'); 
} 

dans ma production config webpack, donc je doute le problème est que je ne suis pas correctement ma variable transmets l'environnement.

Il est intéressant, je suis obtenir ce React erreur:

Warning: It looks like you're using a minified copy of the development build of React.

Si je supprime le code lié à minification (le bloc entier de UglifyJSPlugin) le faisceau résultant est évidemment plus, mais le React avertissement est parti . Une idée sur ce qui pourrait causer cela?


EDIT: même quand je mets explicitement mon NODE_ENV-production avec webpack-plugin-définir c'était 'process.env.NODE_ENV': JSON.stringify('production') je reçois encore cette erreur avec enlaidir.

+0

Vous devez permuter le code ReactJS non réduit avec la version officielle ReactJS minifiée – lumio

+0

L'avertissement de réaction disparaît lorsque vous supprimez uglifyjs parce que le minifier s'exécute sur la 'build de développement' de rea au lieu de la build prod. Utilisez la construction uglifyjs uniquement pendant la construction pour la production (NODE_ENV === production ') –

+0

Comment l'utilisation d'une version déjà réduite de React résoudrait-elle ce problème? Actuellement j'installe React avec du fil et je l'ai défini de cette façon dans les dépendances de mon application: "réagissent": "^ 15.4.1" – feychou

Répondre

0

Il s'avère que le paquet React provient d'une bibliothèque mal fournie que j'utilise dans mon application: l'activation de la carte source dans mes options uglify m'a permis de le découvrir facilement.