在require语句中使用loader的Webpack动态require

17

是否可以在 require 语句中使用动态的 require 和有明确加载器的 require.context?我想做这样的事情,但对我来说它不起作用:

var req = require.context('../somedir', false, /\.js$/);
var imported = req('my-loader!' + someModulePath); // someModulePath defined above somewhere
当我尝试这样做时,会出现“模块未找到”错误,这使得看起来像是webpack将字符串中的my-loader!部分视为文件路径的开头,但我想要my-loader!被识别为一个加载器,就像这里描述的一样:https://webpack.github.io/docs/using-loaders.html#loaders-in-require
1个回答

25

加载器只在编译时运行一次,这意味着在编译require.context后,它就是纯的Javascript。您可以像这样编写它:

var req = require.context("my-loader!../somedir", false, /\.js$/);
var imported = req(someModulePath);
< p > require.context 返回的函数是在运行时评估的。

1
谢谢你。 我需要在加载器之前添加一个额外的感叹号 - !my-loader!../somedir - kutomer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接