2017-02-18 10 views
0

Я знаю, что эта проблема была отправлена ​​бесконечно, но даже после просмотра X вопросов и возможных решений эта ошибка по-прежнему сохраняется.Не удается найти модуль XYZ

У меня есть файл с именем tournament.js в модулях каталога. tournament.js требует: model.js который находится в одном каталоге. Структура выглядит следующим образом:

app/ 
    modules/ 
    model.js 
    tournament.js 

tournament.js выглядит следующим образом:

const Model = require('./model'); 

class Tournament extends Model { 

    constructor() { 
    super(); 
    } 

    static create() { 

    } 
} 

Даже WebStorm говорит путь в require() является правильным, но моя консоль по-прежнему говорит: Uncaught Error: Cannot find module './model'

Что я упускаю ?

Edit: Я использую узел v6.4.0 и Electron v1.4.15

+0

вы пробовали 'константный Model = требуется (» ./ model.js'); '?? – Panther

+0

Да, та же ошибка. – Fortuna

+0

Всякий раз, когда это происходит со мной, я всегда добавляю 'console.log (__ dirname)' непосредственно перед сбоем 'require (...)', чтобы сделать имя папки правильным. Чаще всего я работаю в * неправильной папке *. – adelphus

ответ

1

Okay @adelphus дал мне правильный намек. Я вывел путь с console.log(__dirname), и это было не то, что я ожидал: Да, я был не в том направлении, потому что я думал, что относительный путь require() берет тот, который относится к файлу, в котором я сейчас работаю (это был турнир. js), и это не так.

Вместо require() занимает путь относительно корня из приложения, которое в этом случае было ./app/models/model.js

+0

Узел принимает значение '. /' Означает то же самое, что и каталог текущего файла - «[*' circle.js' должен находиться в том же каталоге, что и 'foo.js' для' require ('./ circle') 'to найти его. *] (https://nodejs.org/dist/v6.4.0/docs/api/modules.html#modules_file_modules) –

+0

Ну, это не работает для меня. Может быть, я должен также отметить, что я используя gulp, и мои автоматизированные задачи копируют мой код из './src' в папку'./build', но с той же структурой папок (поэтому 'src' и' build' идентичны структуре). Затем gulp запускает 'электронный build/main.js'. '__dirname' выводит полный путь. Вместо того, чтобы быть'./build/app/models', это './build'. Не знаю, почему. – Fortuna