browserify 和 babel 命名空间错误 React

browserify and babel namespace error React

browserify 的新手:我有一个普通的 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

我在这里做错了什么。有没有什么方法可以让这个工作而不需要太多的麻烦/代码更改?

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

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

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

然后在另一个文件中

var myNameSpace = require('first_module');

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

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

然后在另一个文件中:

window.myNameSpace.reactFunc1()