【发布时间】:2015-06-03 18:58:09
【问题描述】:
我有两个文件:test.js,其中包含
var Buffer = require('./Buffer');
和Buffer.js 一起
this.foo
当我使用mocha test.js 运行它们时,一切正常,但运行mocha --compilers js:babel/register test.js 会产生以下错误
TypeError: Cannot read property 'foo' of undefined
at Object.<anonymous> (/path/Buffer.js:1:1)
at Module._compile (module.js:460:26)
at normalLoader (/path/node_modules/babel/node_modules/babel-core/lib/babel/api/register/node.js:150:5)
at Object.require.extensions.(anonymous function) [as .js] (/path/node_modules/babel/node_modules/babel-core/lib/babel/api/register/node.js:163:7)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/path/parser_test.js:2:14)
at Module._compile (module.js:460:26)
at normalLoader (/path/node_modules/babel/node_modules/babel-core/lib/babel/api/register/node.js:150:5)
at Object.require.extensions.(anonymous function) [as .js] (/path/node_modules/babel/node_modules/babel-core/lib/babel/api/register/node.js:163:7)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at /path/node_modules/mocha/lib/mocha.js:192:27
at Array.forEach (native)
at Mocha.loadFiles (/path/node_modules/mocha/lib/mocha.js:189:14)
at Mocha.run (/path/node_modules/mocha/lib/mocha.js:422:31)
at Object.<anonymous> (/path/node_modules/mocha/bin/_mocha:398:16)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
at startup (node.js:129:16)
at node.js:814:3
为什么在我需要模块时this 未定义?如果您需要任何其他信息来重现错误,请告诉我。
我使用 babel 5.5.0 和 mocha 2.2.5。
【问题讨论】:
-
请向我们展示您的
Buffer.js和test.js的完整代码。通常,要require一个模块,您必须将其导出为带有module.exports = ???的模块。 -
@marcel,您可以从该模块导出任何内容,一旦遇到
this.foo行就会失败。 -
再次:“请向我们展示您的 Buffer.js 和 test.js 的完整代码。”
-
没有
Buffer.js的完整模块代码,或者至少是this.foo的周边部分,很难诊断和正确回答您的问题。 -
@MarkSimulacrum,我的
Buffer.js内容是文件失败的最小示例。访问this的属性时会出现此问题。文件中存在哪个属性或其他内容无关紧要。
标签: javascript mocha.js babeljs