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()
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()