CommonJS 模块在调用时返回 undefined

CommonJS module returning undefined when is called

我对模块化 JS 完全陌生,以前从未使用过任何模式。我正在编写一个项目,其中包含多达 400 多行代码,我想通过将不同模块中的内容分开来更好地管理它。我选择使用 commonJS 模块是因为我已经在使用 webpack。现在我把我的第一个函数放在另一个模块中并像这样导出它:

//init.js file
var initt = function () {
  octaveNumber = document.getElementById("octaveNum");
  audioCtx = new (window.AudioContext || window.webkitAudioContext);
  osc = audioCtx.createOscillator();
  volume = audioCtx.createGain();
  filter = audioCtx.createBiquadFilter();
  osc.connect(filter);
  volume.connect(audioCtx.destination);
  booleanVal = false;
  osc.frequency.value = dial.value
  osc.start();
  gainDisplay.innerHTML = gainSlider.value;
  noteSetOscFreq()
  octaveUpClick()
  octaveDownClick()
  waveFormSelector()
}

module.exports = initt;

在我的主要 JS 文件中我需要它

var messages = require('./init');

最后在它所属的 If 语句中调用函数:

if (!localStorage.getItem("presetsArr") {
  messages.initt;

不幸的是,我在控制台中得到 Cannot read property 'gain' of undefined,这意味着 Init 模块没有按预期初始化变量和其他东西。当我在不使用 commonJS 模块的情况下放回整个函数时,它工作得很好。我知道这可能与返回值有关,但我不能动手。没有任何效果。

messages.initt() X

消息() √