我想在生产环境中使用CDN中的react.min.js
(例如https://unpkg.com/react@15.3.1/dist/react.min.js),请问如何让Webpack将我的import React from 'react'
语句转换为const React = window.React
,而不是把node_modules/react
打包到bundle里?
我一直用resolve.alias
这样做:
在index.html
中:
<head>
<script type="text/javascript" src="https://unpkg.com/react@15.3.1/dist/react.min.js"></script>
<script type="text/javascript" src="/assets/bundle.js"></script>
</head>
在webpack.prod.config.js
文件中:
alias: {
react$: './getWindowReact',
},
getWindowReact.js
:
getWindowReact.js
:
module.exports = window.React;
注意:在旧的问题中,我没有意识到使用NODE_ENV=production
将React构建到Webpack捆绑包中会剥离propTypes
检查。其中一篇答案侧重于此。
react
,则返回window.React
”。 - Aaroniusexternals
...它们的文档有点别扭。 - Andy'react': 'React'
,webpack 如何知道从哪里获取它?我的意思是,可能会有许多版本或名称。 - Raz Buchnik'react': 'React'
的意思是“当我从from 'react'
导入时,实际上是在寻找window.React
”。关键是包名,值是全局属性名。 - Jacob Raihle