Javascript require(browserify)在指定(空对象)时不能正常工作,但在内联时可以工作

Javascript require(browserify)在指定(空对象)时不能正常工作,但在内联时可以工作,javascript,coffeescript,reactjs,browserify,Javascript,Coffeescript,Reactjs,Browserify,我在React(coffee jsx)中有以下组件定义: CompUtils=require./../utils/comp-utils' ... 渲染:-> console.log CompUtils#prints{}(空对象) 然后 {CompUtils.getConstructComponent@props.construct,@props.onUpdate,@props.onRemove} 但这是可行的: render: -> console.log require('

我在React(coffee jsx)中有以下组件定义:

CompUtils=require./../utils/comp-utils'
...
渲染:->
console.log CompUtils#prints{}(空对象)
然后
{CompUtils.getConstructComponent@props.construct,@props.onUpdate,@props.onRemove}
但这是可行的:

  render: ->
    console.log require('./../utils/comp-utils')
    <div>
      Then
      {require('./../utils/comp-utils').getConstructComponent @props.construct, @props.onUpdate, @props.onRemove}
    </div>
render:->
console.log require('./../utils/comp-utils'))
然后
{require('./../utils/comp-utils')。getConstructComponent@props.construct,@props.onUpdate,@props.onRemove}

我完全被这件事弄糊涂了。请注意,
CompUtils
已成功用于其他组件。

通常,当您从require调用中获得空对象时,这是因为您具有循环依赖关系。因此您需要A,它需要B,它需要C,它需要A。在这种情况下,C将得到一个表示A的空对象,因为A尚未完成其功能/对象的导出,而A只有在下一个勾号,A完成导出后才能完全供C使用

下面是一个例子:

// a.js
var b = require('./b');
module.exports = {
  doStuff: function () {

  }
}

// b.js
var c = require('./c');

// c.js
var a = require('./a');

// This will fail because a.js hasn't exported doStuff yet, since a required b, which 
// required c, which required a.
a.doStuff();

获取空对象的原因是Browserify创建了一个表示
模块的空对象。在模块代码运行之前,导出该模块的
。这意味着另一个模块可能在完成之前需要它,它只是没有完全烘焙。

通常,当您从require调用中获得一个空对象时,这是因为您具有循环依赖关系。因此您需要A,它需要B,它需要C,它需要A。在这种情况下,C将得到一个表示A的空对象,因为A尚未完成其功能/对象的导出,而A只有在下一个勾号,A完成导出后才能完全供C使用

下面是一个例子:

// a.js
var b = require('./b');
module.exports = {
  doStuff: function () {

  }
}

// b.js
var c = require('./c');

// c.js
var a = require('./a');

// This will fail because a.js hasn't exported doStuff yet, since a required b, which 
// required c, which required a.
a.doStuff();

获取空对象的原因是Browserify创建了一个表示
模块的空对象。在模块代码运行之前,导出该模块的
。这意味着另一个模块可能在完成之前需要它,它只是没有完全烘焙。

就像你说的,它应该像在其他组件中一样工作,所以它必须是特定于此组件的。你能发布coffeescript生成的JavaScript代码吗?就像你说的,它应该像在其他组件中一样工作,所以它必须是特定于此组件的。你能发布JavaScript代码吗正在由coffeescript生成?找到循环依赖项。帮了大忙!!找到循环依赖项。帮了大忙!!