浏览器的新功能:我有一个普通的js文件,其中一些反应组件分组在命名空间中,如:
var myNameSpace= {
'reactFunc1': React....,
'reactFunc2': React....,
'reactFunc3': React....,
'nonreactFunc1' function(..)
}
在其他一些js文件中,我试图使用:
myNameSpace.reactFunc1(...);
当我使用babel将jsx转换为js时,这很正常。
但是当我使用命令browserify -t [ babelify --presets [ react ] ] some.js someOther.js
myNameSpace not defined
我在这里做错了什么。有没有办法让这个工作没有太多的hastle /代码更改?
答案 0 :(得分:2)
这里有两个选项,使用模块或使用全局命名空间。
使用模块时,您需要从第一个模块导出命名空间,并在另一个模块中导出require
:
module.exports = {
'reactFunc1': React....,
}
然后在另一个文件中
var myNameSpace = require('first_module');
另一个选项(不太喜欢)是使用全局window
对象:
window.myNameSpace = {
'reactFunc1': React....,
}
然后在另一个文件中:
window.myNameSpace.reactFunc1()