I'd like to use react.min.js from a CDN in production (e.g. https://unpkg.com/[email protected]/dist/react.min.js)
What is the best way to get Webpack to transform my import React from 'react' statements into const React = window.React instead of building node_modules/react into the bundle?
I've been doing it with resolve.alias like this:
In index.html:
<head>
<script type="text/javascript" src="https://unpkg.com/[email protected]/dist/react.min.js"></script>
<script type="text/javascript" src="/assets/bundle.js"></script>
</head>
In webpack.prod.config.js:
alias: {
react$: './getWindowReact',
},
getWindowReact.js:
module.exports = window.React;
Note: In the old question I didn't realize that building React into a Webpack bundle with NODE_ENV=production would strip out the propTypes checks. One of the answers focuses on that.
In your webpack config you can use the
externalsoption which will import the module from the environment instead of trying to resolve it normally:Read more here: https://webpack.js.org/configuration/externals/