2017-08-14 65 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 = _; 
相關問題