2017-08-14 62 views
0

我正在尝试做些什么。我认为这应该很简单,但是我的头又一次在旋转,可能是因为结肠中缺少结肠或两个咖啡因。任何帮助将不胜感激......jQuery函数require()调用.js页面

main.js

global.$ = global.jQuery = require('jquery'); 

const _ = require('./functions'); 

$(document).ready(function() { 
    console.log(_.isNumber('test')); 
}); 

functions.js

var _ = (function() { 
    return { 
    isNumber: function(obj) { 
     return typeof obj === 'number'; 
    }, 
    }; 
})(); 

错误我收到:

Uncaught TypeError: _.isNumber is not a function 

可能的修复?

module.exports = _; 

添加上面functions.js的底座允许函数被调用。但是,这似乎是一个奇怪的“最佳做法”,有人可以证实。

无论我如何尝试并致电isNumber它都不会运行,找到它或任何东西。我热衷于使用browserify require()来引入脚本,但也许我并没有完全使用它。

干杯

+0

我想你需要指定.js扩展名为'功能'不是导出的模块? 'const _ = require('./ functions.js');' – 83N

+0

@ 83N,这很好,它肯定会找到该文件,我已经放弃了一些'console.log()'调用,这是稳定的。谢谢你... – Danny

+1

删除尾随逗号。无需包装在IIFE中,只需将一个对象分配给'module.exports'。你有没有看到它是否在没有$(document).ready'的情况下工作? – styfle

回答

1

您使用它在你的main.js文件的方式,出口将需要一个对象(是的,你如果你想在其他地方require它需要export东西)。

var _ = { 
     isNumber: function(obj) { 
      return typeof obj === 'number'; 
     }, 
    }; 

module.exports = _; 
相关问题