我Browserify用来捆绑一个ReactJS应用程序。
Browserify
ReactJS
我所有的组件require("react")在顶部都有一个。这导致Browserify将ReactJS源包括在我的捆绑包中。但我想排除它。
require("react")
我怎么做?这是正确的做法吗?
@NickTomlin给出了此答案,但随后将其删除。
您可以使用external:
external
browserify --external react src.js > dest.js
使用api的示例:
var bundler = browserify('src.js'); bundler.external('react'); bundler.bundle();
这是一个可行的选择。 external需要另一个脚本以兼容方式提供模块。您可以生成这样的脚本:
browserify -r react > react.js env NODE_ENV=production browserify -r react | uglifyjs -m > react.min.js
在HTML中:
<script src="react.js"></script> <script src="dest.js"></script>
dest.js是您的代码,但没有反应。react.js只是react及其依赖项。
需要更多外部物品吗?只需添加它们即可做出反应。
browserify -x react -x react-bootstrap src.js > dest.js browserify -r react -r react-bootstrap > vendor.js
您还可以在package.json中执行类似的操作
"browser": {"react": "./react-fake.js"} // ./react-fake.js try { module.exports = require('react'); } catch(e){ module.exports = window.React; }
并编译-x react。这使您可以接受-r react构建,并回退到全局React。
-x react
-r react