【发布时间】:2016-04-13 06:41:19
【问题描述】:
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
我在这里做错了什么。有没有什么方法可以让这项工作无需太多麻烦/代码更改?
【问题讨论】:
-
您是否在不同的模块上使用命名空间?你是如何导入命名空间的?
-
@Tzach 我没有导入它。而且这里没有模块..我有 2 个单独的 js 文件...当我不浏览文件时...
myNameSpace.reactFunc1已定义但当我浏览器时myNameSpace.reactFunc2未定义 -
我不知道如何将这个
var myNameSpace= { 'reactFunc1': React...., 'reactFunc2': React...., 'reactFunc3': React...., 'nonreactFunc1' function(..) }设为模块并以名称myNameSpace导出它并在其他js 文件中使用它并执行myNameSpace.reactFunc1(...);之类的操作 -
知道了。这是因为当使用 browserify 时,每个文件都是一个模块,而
var定义是该模块的本地文件。您需要将一个模块导入另一个模块,或者执行window.myNameSpace = ...
标签: reactjs namespaces browserify babeljs