Babel 不允许导入没有 .js 文件扩展名的文件

Jum*_*ant 4 javascript babeljs

我已经安装了 babel,现在可以使用 import 语法了。然而,这段代码import { dbConnect } from './utils/dbConnect.js';可以工作,但也import { dbConnect } from './utils/dbConnect';不能工作。

我已经在网上搜索了几个小时,据我了解,此功能应该在我已经安装的 @babel/preset-env 中自动启用。这是我的依赖项:

"dependencies": {
    "@babel/core": "^7.14.6",
    "@babel/node": "^7.14.5",
    "@babel/preset-env": "^7.14.5",
    "body-parser": "^1.19.0",
    "cors": "^2.8.5",
    "dotenv": "^10.0.0",
    "express": "^4.17.1",
    "mongoose": "^5.12.14",
    "nodemon": "^2.0.7"
  },
  "devDependencies": {
    "eslint": "^7.28.0",
    "eslint-config-airbnb-base": "^14.2.1",
    "eslint-plugin-import": "^2.23.4"
  }
Run Code Online (Sandbox Code Playgroud)

我目前没有.babelrc文件。

这是错误:

internal/process/esm_loader.js:74
    internalBinding('errors').triggerUncaughtException(
                              ^

Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/Users/me/Repositories/myrepo/server/utils/dbConnect' imported from /Users/me/Repositories/myrepo/server/index.js
Did you mean to import ../utils/dbConnect.js?
    at finalizeResolution (internal/modules/esm/resolve.js:276:11)
    at moduleResolve (internal/modules/esm/resolve.js:699:10)
    at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:810:11)
    at Loader.resolve (internal/modules/esm/loader.js:88:40)
    at Loader.getModuleJob (internal/modules/esm/loader.js:241:28)
    at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:56:40)
    at link (internal/modules/esm/module_job.js:55:36) {
  code: 'ERR_MODULE_NOT_FOUND'
Run Code Online (Sandbox Code Playgroud)

Jum*_*ant 6

我最终启用了不带文件扩展名的导入,并添加了以下内容: --experimental-modules --es-module-specifier-resolution=node在运行我的应用程序时添加到节点。

我的启动脚本现在是:"start": "nodemon --exec babel-node --require dotenv/config --experimental-modules --es-module-specifier-resolution=node index.js"