移动到不同文件时不是函数

Not a function when moved to a different file

我有这个 coffeescript 函数:

_skip_version = (currentVersion, skippedVersions) ->
  if (currentVersion.indexOf(skippedVersions) == -1)
    return false
  return true

它目前在我的 archive.spec.coffee 文件中,并且可以像这样调用来工作:

if (_skip_version(config.version, version))
    this.skip 'Skipping test - Not supported on this version'

我现在想让其他文件使用 _skip_version 所以 archive.spec.coffee 似乎不再是保存它的地方了。我想将其移至 helpers.coffee。我将函数复制到新文件并添加 helpers = require('./helpers')archive.spec.coffee。现在我试着这样称呼它:

if (helpers._skip_version(s3.config.clevOsVersion, version))
  this.skip 'Skipping test - Not supported on this version'

它抛出这个错误:

TypeError: helpers._skip_version is not a function

我做错了什么?

这是我的 hooks.coffee 文件:

AWS = null
global = null

if typeof window == 'undefined'
   AWS = require 'aws-sdk'
   global = GLOBAL
else
   AWS = window.AWS
   global = window

if global.jasmine
   global.jasmine.DEFAULT_TIMEOUT_INTERVAL = 30000

require('util').print = (data) ->
   process.stdout.write(data)

global.expect = require('chai').expect

matchXML = (xml1, xml2) ->
   results = []
   parser = new (require('xml2js').Parser)()
   [xml1, xml2].forEach (xml) ->
      parser.parseString xml, (e, r) ->
         if e then throw e
         results.push(r)
   expect(results[0]).to.eql(results[1])

getUniqueName = ->
  'aws-' + Date.now()

_skip_version = (currentVersion, skippedVersions) ->
   if (currentVersion.indexOf(skippedVersions) == -1)
     return false
   return true

module.exports =
   AWS: AWS
   util: AWS.util
   getUniqueName: getUniqueName
   matchXML: matchXML

您没有导出

改变

module.exports =
 AWS: AWS
 util: AWS.util
 getUniqueName: getUniqueName
 matchXML: matchXML

module.exports =
  AWS: AWS
  util: AWS.util
  getUniqueName: getUniqueName
  matchXML: matchXML
  _skip_version: _skip_version