問題

NPMモジュールを変数で動的に要求する方法が見つかりません。

ここに私がやろうとしているサンプルコードがあります、すべてがうまく動作します NPMモジュールを動的にインポートすることを期待しています。

 const firstModule = 'my-npm-module';
const secondModule = './MyReactComponent';

// NPM Module
import(firstModule).then(...); // Doesn't work
import('my-npm-module').then(...); // Works

// Local React Component
import(secondModule).then(...); // Works
import('./MyReactComponent').then(...); // Works
 

  ベストアンサー

動的インポート時の Webpackドキュメントから:

import(foo)のような完全に動的な文は失敗します。 Webpackには少なくともいくつかのファイルの場所情報が必要です。これは fooはシステム内の任意のファイルへのパスである可能性があるため またはプロジェクト。 import()には、 モジュールがある場所では、バンドルは特定の ディレクトリあるいはファイルのセット。

あなたの最良の選択肢は、おそらくnode_modulesの何かに動的ロードを使用しないか、モジュールに明示的なパスを追加することです。

 import(`./node_modules/${firstModule}/index.js`);
 

  同じタグがついた質問を見る

javascriptnpmwebpack