如何使用browserify“删除”/“更改”一些需要(…)调用?

我有应用程序写在Node.js需要一些NPM模块(反应,反应路由器等)。 当我运行browserify,然后所有的npm模块被“注入”到bundle.js文件。 我想要的是为bower提供分发,不包括bundle.js文件中的反应和反应路由器依赖项,因为它们可以在bower.json中作为依赖项引用。

app.js:

var React = require('react') React.render(...) 

在bundle.js中,与app.js一起被注入

我需要bundle.js不会包含反应,并会假设它在全局(窗口)范围内可用。

bundle.js:

 React.render(...) 

或者像这样的东西:

 var require = function(name){ return window[name] } var React = require('react') React.render(...) 

所以基本上我想告诉browserify,有些模块可以在window范围内find,而不必注入到bundle.js中。

使用-x [Module Name]从软件包中排除节点模块。

 browserify -d -x react -x react-router app.js > bundle.js