sindresorhus/ora

Error [ERR_REQUIRE_ESM]: require() of ES Module not supported

berkobob opened this issue · 7 comments

I'm getting the error message:

Error [ERR_REQUIRE_ESM]: require() of ES Module not supported
Instead change the require to a dynamic import() which is available in all CommonJS modules.

When I try and require ora:

const ora = require('ora')

I'm using node v16.9.0

me too.

Error [ERR_REQUIRE_ESM]: require() of ES Module not supported
Instead change the require to a dynamic import() which is available in all CommonJS modules.

Same to me

Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: /home/dm/code/mock-ui/packages/server/node_modules/ora/index.js
server: require() of ES modules is not supported.
server: require() of /home/dm/code/mock-ui/packages/server/node_modules/ora/index.js from /home/dm/code/mock-ui/packages/server/lib/server.js is an ES module file as it is a .js file whose nearest parent package.json contains "type": "module" which defines all .js files in that package scope as ES modules.
server: Instead rename index.js to end in .cjs, change the requiring code to use import(), or remove "type": "module" from /home/dm/code/mock-ui/packages/server/node_modules/ora/package.json.
server:     at Module._extensions..js (internal/modules/cjs/loader.js:1015:13)
server:     at Object.reqExtensions.<computed> [as .js] (/home/dm/code/mock-ui/packages/server/node_modules/babel-watch/runner.js:71:7)
server:     at Module.load (internal/modules/cjs/loader.js:863:32)
server:     at Function.Module._load (internal/modules/cjs/loader.js:708:14)
server:     at Module.require (internal/modules/cjs/loader.js:887:19)
server:     at require (internal/modules/cjs/helpers.js:74:18)
server:     at Object.<anonymous> (/home/dm/code/mock-ui/packages/server/lib/server.js:4:1)
server:     at Module._compile (internal/modules/cjs/loader.js:999:30)
server:     at babelWatchLoader (/home/dm/code/mock-ui/packages/server/node_modules/babel-watch/runner.js:58:13)
server:     at Object.reqExtensions.<computed> [as .js] (/home/dm/code/mock-ui/packages/server/node_modules/babel-watch/runner.js:69:7)

same here? any solutions?

when i try 'import ora from 'ora';' in my node project getting:

  import ora from 'ora';
  ^^^^^^

  SyntaxError: Cannot use import statement outside a module
      at Object.compileFunction (node:vm:352:18)
      at wrapSafe (node:internal/modules/cjs/loader:1031:15)
      at Module._compile (node:internal/modules/cjs/loader:1065:27)
      at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
      at Module.load (node:internal/modules/cjs/loader:981:32)
      at Function.Module._load (node:internal/modules/cjs/loader:822:12)
      at Module.require (node:internal/modules/cjs/loader:1005:19)
      at require (node:internal/modules/cjs/helpers:102:18)
      at runScraper (D:\Coding\vizesizgezi.com\scraper\manager.js:28:16)
      at Object.module.exports.initialize (D:\Coding\vizesizgezi.com\scraper\manager.js:19:3)
}

注意当前加载模块的规则是哪种?
一种是 ES6 模块,简称 ESM;
另一种是 Node.js 专用的 CommonJS 模块,简称 CJS。
这两种模块不兼容。

//  在commonJS模块,可以使用 await import()

;(async () => {
  const ora = await (await import('ora')).default
  const spinner = ora('正在发布到服务器...')
  // enjoy your code
})

writing like this will looks better

getSpinner(txt = "") {
    const { default: ora } = await import("ora");
    return ora(txt);
  }

const ora = require('ora')
依赖版本使用这个 "ora": "^5.4.0"