browserify和babel命名空间错误React

时间:2016-04-13 06:41:19

标签: reactjs namespaces browserify babel

浏览器的新功能:我有一个普通的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 /代码更改?

1 个答案:

答案 0 :(得分:2)

这里有两个选项,使用模块或使用全局命名空间。

使用模块时,您需要从第一个模块导出命名空间,并在另一个模块中导出require

module.exports = {
    'reactFunc1': React....,
}

然后在另一个文件中

var myNameSpace = require('first_module');

另一个选项(不太喜欢)是使用全局window对象:

window.myNameSpace = {
    'reactFunc1': React....,
}

然后在另一个文件中:

window.myNameSpace.reactFunc1()