And*_*ena 19 javascript browserify reactjs
我正在使用Browserify捆绑ReactJS应用程序.
我的所有组件都包含require("react")在顶部.这导致在我的包中Browserify包含ReactJS源.但我想排除它.
我怎么做?这是正确的做法吗?
Bri*_*and 48
@NickTomlin给出了这个答案,但随后删除了它.
你可以使用external:
browserify --external react src.js > dest.js
使用api的一个例子:
var bundler = browserify('src.js');
bundler.external('react');
bundler.bundle();
Run Code Online (Sandbox Code Playgroud)
这是一个可行的选择. external需要另一个脚本以兼容的方式提供模块.您可以生成这样的脚本:
browserify -r react > react.js
env NODE_ENV=production browserify -r react | uglifyjs -m > react.min.js
Run Code Online (Sandbox Code Playgroud)
在HTML中:
<script src="react.js"></script>
<script src="dest.js"></script>
Run Code Online (Sandbox Code Playgroud)
dest.js是你的代码,除了反应.react.js只是反应及其依赖.
外部需要更多东西吗?除了反应之外,只需添加它们.
browserify -x react -x react-bootstrap src.js > dest.js
browserify -r react -r react-bootstrap > vendor.js
Run Code Online (Sandbox Code Playgroud)
你也可以在package.json中做这样的事情
"browser": {"react": "./react-fake.js"}
Run Code Online (Sandbox Code Playgroud)
// ./react-fake.js
try {
module.exports = require('react');
} catch(e){
module.exports = window.React;
}
Run Code Online (Sandbox Code Playgroud)
并编译-x react.这允许您接受-r react构建,并回退到全局React.
听起来你想使用browserify-shim.
在你的 package.json
"browserify-shim": {
"react": "global:React"
},
"browserify": {
"transform": [ "browserify-shim" ]
},
"dependencies": {
"browserify-shim": "~3.2.0"
}
Run Code Online (Sandbox Code Playgroud)
(未经测试).本节提供了更多信息.
| 归档时间: |
|
| 查看次数: |
10975 次 |
| 最近记录: |