2016-05-30 2 views
0

настоящее время я использую Жасмин («жасмин»: «^ 2.4.1») с узлом v6.1.0Поддержка Jasmine & requirejs для нескольких модулей?

Я оба пытаются обеспечить и потреблять несколько модулей в одном файле - однако продолжают получать ошибки как объект неопределенным или null и т. д.

Я играл с различными стилями синтаксиса, но не могу понять, правильно, где я иду не так?

Документация для обоих жасмин и RequireJs просто не помогает.

В моем модуле экспортировать так:

function Player() { 
} 

Player.prototype.play = function(song) { 
    this.currentlyPlayingSong = song; 
    this.isPlaying = true; 
}; 

Player.prototype.pause = function() { 
    this.isPlaying = false; 
}; 

Player.prototype.resume = function() { 
    if (this.isPlaying) { 
    throw new Error("song is already playing"); 
    } 

    this.isPlaying = true; 
}; 

Player.prototype.makeFavorite = function() { 
    this.currentlyPlayingSong.persistFavoriteStatus(true); 
}; 

module.exports = Player; 

function Song() { 
} 

Song.prototype.persistFavoriteStatus = function(value) { 
    // something complicated 
    throw new Error("not yet implemented"); 
}; 

module.exports = Song; 

И когда я потребляю его в моей Spec:

var { Player, Song } = require('../app/example-module'); 

ответ

0

В вашем примере второй module.exports отменяет первый - module.exports = Player; переписывается module.exports = Song; - и Player никогда не экспортируется на самом деле.

Не зная, почему вам нужно определить и использовать несколько модулей из одного файла, я предлагаю вам попробовать использовать один файл для каждого модуля, что приведет к большему количеству файлов, но более простая общая структура кода.

Если ваша проблема с несколькими файлами связана с набором и распределением, существуют различные инструменты построения, которые могут связывать их в один файл именно для этой цели.

Надеюсь, это полезно.

+0

Я дам вам попробовать и посмотреть, исправляет ли он способ, которым я пользуюсь – shenku

Смежные вопросы