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'
}
ベストアンサー1
他にもこの問題を抱えている人がいるかもしれないので、私自身の質問に答えておきます。
実験モードでは、拡張子を含む完全なパスを定義する必要があることがわかりました。そのため、index.js
それがわかるだろうと思ってインポートしようとしています。
修正するには:
import express from 'express'
import next from 'next'
import api from './src/server/api/index.js'