Ошибка сегментации Jest (JS) 11 в IO.js 1.4.3 при использовании require()

Я использую IO.js 1.4.3 и Jest для запуска своих тестов. Мне нужна более новая версия V8, потому что я использую функции ES6, такие как Promises.

Если я попробую самый простой тест:

describe('the truth', function() {
    it('is true', function() {
        expect(true).toBeTruthy();
    });
});

это работает (к счастью). Если я включу, однако, звонок в require() (что я должен сделать, чтобы проверить свой собственный код), я получаю:

Using Jest CLI v0.4.0
Waiting on 1 test...Segmentation fault: 11

Это происходит независимо от того, какой модуль я включаю и звоню ли я jest.dontMock() первый.

Это не очень много говорит мне об ошибке, и require действительно, кажется, проблема. Есть ли какие-либо решения для этого, кроме возврата к pre-1.0 node.js?

2 ответа

Это происходит в тех случаях, когда вы установили node_modules с помощью node в какой-то версии, а потом переключиться на iojs с помощью nvm install iojs и пытается запустить установленный node_modules с npm, Маловероятно, что это ваша проблема, но, надеюсь, кто-нибудь еще погуглит, может попробовать это и исправить.

nvm install iojs
rm -rf node_modules
npm install

затем запустить все, что вы пытаетесь запустить, обычно что-то вроде npm run start,

Ошибки сегментации почти всегда происходят из собственного кода C++, поскольку JS не может вызывать такие сбои, если не вызывает ошибку V8. Таким образом, я подозреваю, что проблема связана с нативным модулем contextify, от которого косвенно зависит шутка (через jsdom).

Возможно, стоит попробовать взломать версию jest, которая зависит от последней версии jsdom, которая больше не имеет собственной зависимости от модуля.

Другие вопросы по тегам