Webpack动态请求

时间:2016-04-04 09:30:58

标签: webpack commonjs

它不能正常工作

let serviceName = "AuthService";
let servicePath = `app/services/${serviceName}`; 
let service     = require(servicePath);

它正在运作

let service = require("app/services/AuthService");

如何使用webpack动态模块?

错误:

Cannot find module 'app/services/AuthService'.

我在文件末尾写了日志消息,它在模块错误之前显示。

正如我在doc中发现的那样,只需要使用简单的要求。 (https://webpack.github.io/docs/context.html#dynamic-requires

我认为我不需要为这项工作创建自己的上下文。

1 个答案:

答案 0 :(得分:1)

enter image description here

有两种方法可以做到这一点:

1)您需要提供特定的表达方式:

let serviceName = "AuthService";
let service  = require('./app/services/' + serviceName);

webpack解析require语句并提取构建上下文的一些信息(目录,正则表达式)。

2)您可以使用require.context函数创建自己的上下文:

let serviceName = "AuthService";
let context = require.context('./app/services', false);
let service = context('./' + serviceName);

enter image description here

查看更多https://webpack.github.io/docs/context.html