Разделенные запятыми операторы require заканчиваются ошибкой, если пропущена запятая, но не узел - почему? - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть такая структура проекта:

/
 __tests__/
    test.spec.js
 a./ 
  a.js
 b/
  b.js
 c/
  c.js
 app.js
 index.js 

И в этом a.js

const b = require("../b/b")
 c = require("../c/c"); 

 function a() {    
 b(); 
 c(); 
 }


 module.exports = a; 

Обратите внимание на пропущенную запятую в конце первой строки .

Теперь этот код работает нормально при запуске node index.js

Теперь в моем тесте мне, в основном, требуется ../app для запуска всего этого.

FAIL  __tests__/test.spec.js
  ● Test suite failed to run

    ReferenceError: c is not defined

      1 | const b = require("../b/b")
    > 2 |  c = require("../c/c"); 
        |   ^
      3 | 
      4 | 
      5 |  function a() {    

      at Object.<anonymous> (a/a.js:2:3)
      at Object.<anonymous> (app.js:1:11)

Test Suites: 1 failed, 1 total

Теперь, если я добавлю эту запятую, она будет работать нормально.

Есть идеи, почему это так? Это ошибка с шуткой?

Полное воспроизведение здесь:

https://github.com/dwjohnston/jestrequireissue

npm i

node index.js #works fine
npm test #fails 
...