Ошибка сегментации 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, которая больше не имеет собственной зависимости от модуля.