如何获取与browserify + babelify捆绑在一起的已编译模块列表? 我用gulp设置了一个简单的捆绑过程。
我注意到捆绑变得非常大。我没有很多“有用的”代码。从库中我在页面上有以下内容:React,react-router,validator和EventEmitter,Immutable。但捆绑大约1.5MB。地图文件是独立的。有没有办法减小尺寸?
我试图将React排除在:
bundleStream.external(['jquery', 'react']);
我看到jquery被排除在外,现在尺寸变小了。我仍然在输出中看到React模块。
所以,我的问题是我还使用了一些通过npm添加的反应组件。其中一个指向'react'和另一个'react / addons'。我想通过手动完成代码。不确定哪种工具可以帮助我。因此要删除它,我必须将两者都添加到我的browserify包中:
bundleStream.external(['jquery', 'react', 'react/addons']);
有一点需要提及的是,我的目标是从CDN加载库,并在我的代码中使用它们的全局变量。我编写了一个简单的浏览器转换函数,如解释here,将所有 require('react')或导入React从'react'行更改为global < strong> window.React ,但是在npm中那些反应组件中的 require 调用没有用。因此,一半的包含 window.React ,另一半仍然需要('反应')行。
为了解决这个问题,我将 babelify 转换为 replaceStream 之后将其发送到了 {{3}} :
.pipe(replaceStream('require("react")', 'window.React'))