web-dev-qa-db-fra.com

Erreur non capturée: Réagissez en mode production mais code mort

lorsque je déploie mon projet en production, cette erreur est la suivante: 

Erreur non capturée: React s'exécute en mode production, mais l'élimination du code mort n'a pas été appliquée. Lisez comment configurer correctement React pour la production:

Mon fichier webpack contient ce code dans la section plugins:

 `new webpack.DefinePlugin({
    'process.env.NODE_ENV': JSON.stringify('production')
  }),
  new webpack.optimize.AggressiveMergingPlugin(),
  new webpack.optimize.UglifyJsPlugin({
    minimize: true
  }),
  new CompressionPlugin({
    asset: '[path].gz[query]',
    algorithm: 'gzip',
    test: /\.js$|\.css$|\.html$/,
    threshold: 10240,
    minRatio: 0.8
  })`

Merci de votre aide

Michal Zalecki a un très bon article sur la façon d'optimiser React pour la production avec Webpack: 

https://michalzalecki.com/optimize-react-build-for-production-with-webpack/#remove-dead-code-with-tree-shaking

Il y a deux choses à vérifier sur la base de l'erreur qui vous est donnée ici. 

1) Le premier devrait être de supprimer l’option de minimisation. 

Cela vous permettra d'accéder à votre lot de production pour voir/* les commentaires d'exportation d'harmonie non utilisés */insérés.

Si ceux-ci ne sont pas insérés, je voudrais aller dans votre configuration Bable et m'assurer que le code est correctement transpilé sous le préréglage es2015. L'arborescence ne fonctionne que pour les modules ES2015.

2) Je serais également sûr d'inclure l'option source-map devtool si vous ne le faites pas déjà. Les cartes sources sont Dope, mais je vais laisser nos amis de teamtreehouse expliquer pourquoi:

http://blog.teamtreehouse.com/introduction-source-maps

1