首页 > 解决方案 > 节点 --experimental-modules - 错误:找不到模块

问题描述

尝试导入本地文件时出现错误,但使用 npm 包时没有问题。

服务器.js

import express from 'express'
import next from 'next'

import apis from './src/server/api'

api.js

export default {
  ello: 'bye',
  jamie: 'hey'
}

启动应用

node --experimental-modules --inspect server.js

错误

For help, see: https://nodejs.org/en/docs/inspector
(node:20153) ExperimentalWarning: The ESM module loader is experimental.
internal/modules/esm/default_resolve.js:59
  let url = moduleWrapResolve(specifier, parentURL);
            ^

Error: Cannot find module '/var/www/goldendemon.hutber.com/src/server/api' imported from /var/www/goldendemon.hutber.com/server.js
    at Loader.resolve [as _resolve] (internal/modules/esm/default_resolve.js:59:13)
    at Loader.resolve (internal/modules/esm/loader.js:70:33)
    at Loader.getModuleJob (internal/modules/esm/loader.js:143:40)
    at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:43:40)
    at link (internal/modules/esm/module_job.js:42:36) {
  code: 'ERR_MODULE_NOT_FOUND'
}

标签: javascriptnode.jsecmascript-6google-chrome-devtools

解决方案


如果其他人有这个问题,我正在回答我自己的问题。

事实证明,在实验模式下,您需要定义带有扩展名的完整路径。所以我试图导入index.js它会知道的想法。

要解决这个问题:

import express from 'express'
import next from 'next'
import api from './src/server/api/index.js'

推荐阅读