npm test - Должен использовать импорт для загрузки ES-модуля - но я так думал? (узел 12) - PullRequest
3 голосов
/ 18 января 2020

Все мои файлы .mjs расширение

У меня есть fizz_buzz.mjs и test/fizz_buzz.spec.mjs

test/fizz_buzz.spec.mjs использует

import { fizzBuzz } from '../fizz_buzz'

Я бегу npm test и я получаю

> mocha test/**/*.spec.mjs                                                                                                                              

/home/durrantm/Dropbox/90_2019/work/code/js/mocha_chai_bdd_tdd_exercises/node_modules/yargs/yargs.js:1163                                               
      else throw err                                                                                                                                    
           ^                                                                                                                                            

Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: /home/durrantm/Dropbox/90_2019/work/code/js/mocha_chai_bdd_tdd_exercises/test/fizz_buzz.spec
.mjs                                                                                                                                                    
    at Object.Module._extensions..mjs (internal/modules/cjs/loader.js:1025:9)                                                                          
    at Module.load (internal/modules/cjs/loader.js:811:32)
    at Function.Module._load (internal/modules/cjs/loader.js:723:14)
    at Module.require (internal/modules/cjs/loader.js:848:19)

fizz_buzz.mjs в настоящее время просто:

$ cat fizz_buzz.mjs 
export function fizzBuzz() {
  return true
}

fyi package .json использует

"scripts": {
  "test": "mocha test/**/*.spec.mjs"
},

в случае, если это Проблема?

Я также пытался $ mocha test/**/*.spec.mjs --experimental-modules в командной строке, но та же ошибка

...