美文网首页
browserify.require()的一个注意点

browserify.require()的一个注意点

作者: 圈圈不能用 | 来源:发表于2016-12-23 00:00 被阅读0次

今天在用browserify的时候踩了一个坑,mark很久了,趁着周末可以小记一笔。

项目本身就是一个js的sdk是前端服务提供者,有业务方调用这个服务,所以在web端,当然要把服务对象暴露在全局,在浏览器中当然就是挂载到window对象上。

原先项目的写法是

var b = browserify({

........

entries: 'src/js/xxx.jsx',

externalRequireName: 'load'

......

});

b.require('./src/js/xxx.jsx', {expose: "a"});

执行后,在调用该jssdk的页面,打开控制台可以看到,输入window.load这个是有定义的,如下图;

然而,由于项目里面功能越来越多,模块分层越来越细致,为了简化路径,方便组织模块,所以用上了browserify的两个参数opts.basedir\opts.paths,

var b = browserify({

.......

basedir: path.resolve('src/'), //模块文件的路径

paths: [path.resolve('src/')],//寻找模块时需要寻找的文件夹

.......

});

那么b.require();的调用,最开始我没有修改,发现window没有load方法,于是我修改为下面这样

b.require('./js/xxx.jsx', {expose: "a"});

结果在控制台查询window对象,还是没有load这个方法。

我去查官方文档,在文档发现有这么一句

使用了opts.basedir让相对地址可以被解析,file要是一个流。

于是我修改为

b.require(fs.createReadStream('./src/js/xxx.index.jsx'), {expose: 'a'});

功能正常了。

之前只是知道b.require()的功能,具体使用方式并没有细细的研究,遇到问题才会仔细的看文档找解决方法。

相关文章

  • browserify.require()的一个注意点

    今天在用browserify的时候踩了一个坑,mark很久了,趁着周末可以小记一笔。 项目本身就是一个js的sdk...

  • 注意的点

    $(document).ready() $(function(){}) jq一般不用mouseover mouse...

  • 注意点

    ❤️车子抖动:档位不匹配,压离合,看码数表,重新挂挡 ❤️转弯:减速,挂档 ❇️红绿灯❇️路况❇️车距❇️视情况而...

  • 注意点

    原生的forEach只能遍历数组,不能遍历伪数组

  • 注意点

    导航控制器默认会给所有导航控制器下的scrollView添加44的滚动偏移量 , 可以用self.automati...

  • 注意点

    1.until前半句是肯定句,那么until=before,将until移到逗号后 2.选项中出现最高级,必须与原...

  • 注意点

    数组名是首个元素的地址0x123456 常量成员函数不能改变调用它的对象的内容(可以读取调用它的对象的数据成员,但...

  • 注意点

    1.注释不能少于代码的三分之一2.一般是:获取查询列表使用get请求、保存数据用post请求3.生命周期函数4.g...

  • 注意点

    1.拉取代码 这一步如果发现代码有冲突。联系我。正常就进入下一步。 2. 在这个终端界面:输入下面代码,先打包前端...

  • 注意点

    不使用IDE怎么编译和指定classpath private default protected public 注...

网友评论

      本文标题:browserify.require()的一个注意点

      本文链接:https://www.haomeiwen.com/subject/mlohvttx.html