Webpack通过变量动态要求npm模块

时间:2019-02-06 12:30:33

标签: javascript npm webpack

我找不到通过变量动态要求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

1 个答案:

答案 0 :(得分:1)

Webpack docs开始动态导入:

  

完全动态的语句(例如import(foo))将失败,因为   webpack至少需要一些文件位置信息。这是   因为foo可能是系统中任何文件的任何路径   或项目。 import()必须至少包含有关以下内容的信息   模块所在的位置,因此绑定可以限制为特定的   目录或文件集。

您最好的选择可能是不对node_modules中的任何内容使用动态加载,或者将显式路径添加到模块中,例如

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