私はReactにNext.jsを使用しています。私は、開発者がパスを指定することなく、Arc(他のボイラープレートに反応する)コンポーネントを動的にインポートする方法が好きです。フルパスを使用せずにすべてのコンポーネントサブディレクトリを動的にインポート
components
|_ index.js
|_ atoms
|_ Input
|__ index.js
|_ molecules
|_ organisms
|_ templates
と私は次のようにそれをインポートしたいと思います:
import { Input, Label, Field, HomePage, PageTemplate } from 'components'
フォルダ構造は次のようにやや見えるかもしれダイナミックインポートに使用されて
import { Input } from 'components'
コード:components/index.js
const req = require.context('.', true, /\.\/[^/]+\/[^/]+\/index\.js$/)
req.keys().forEach((key) => {
const componentName = key.replace(/^.+\/([^/]+)\/index\.js/, '$1')
module.exports[componentName] = req(key).default
})
しかし、それは動作しません。私が得るエラー:
Module not found: Error: Cannot resolve module 'components'...
require.context
はサーバサイドでは使用できません。 私は、このパスをloader configにインポートするように指定する必要があると思います。どのようにこれが正しく行われているかについて誰かがヒントを共有できますか?
/components/index.jsでフォルダのすべてのコンポーネントをエクスポートしないのはなぜですか? – Robsonsjre
@Robsonsjreあなたはリンクを参照してくださいか、その例を表示できますか? Btw、それはバックグラウンドでどのように機能しますか?パフォーマンスやメモリ消費が壊れていますか? Next.jsはデフォルトでSSRを実行し、インポートされたものだけをレンダリングします。 – Kunok