关键依赖关系 - 依赖关系的请求是表达式Webpack

Sub*_*thi 16 express angularjs webpack

我在我的angular应用程序中使用服务创建uibModal如下

function modal(modalConfig){
                  var modalInstance = $uibModal.open({
                  animation: true,
                  template: require("../a/b/xyz.html"),
                  controller: modalConfig.controller,
                  size: modalConfig.size,
                  controllerAs: modalConfig.controllerAs,
                  bindToController : true,
                  resolve: modalConfig.resolveObj

                });
            }
Run Code Online (Sandbox Code Playgroud)

请注意该行

 template: require("../a/b/xyz.html"),
Run Code Online (Sandbox Code Playgroud)

我想在这个地方使用一个变量

 template: require(modalConfig.templateUrl),
Run Code Online (Sandbox Code Playgroud)

但是当我用一个变量来代替硬编码值webpack给我时

Critical dependencies:
83:22-54 the request of a dependency is an expression
Run Code Online (Sandbox Code Playgroud)

我无法解决此错误.可能的原因是什么?

我已经使用node-express服务器进行连续webpack构建.我也看了其他答案,但他们没有解决我的问题.

Sub*_*thi 22

经过多次打击和试验后找到了解决方案.我做的是这样的:

template: require("../../scripts" + modalConfig.templateUrl + ".html")
Run Code Online (Sandbox Code Playgroud)

假设

  1. 所有文件都来自的根文件夹 scripts
  2. 以及写入函数的文件中该文件夹的相对路径../../scripts.
  3. ../../scripts+ modalConfig.templateUrl+ ".html"将形成要使用的文件的正确路径.

强制性说明

  1. 总是写一些根文件夹的硬编码路径.不要把它变成变量.所以这不行

    var context = "../../scripts" ; template: require(context + modalConfig.templateUrl + ".html")

基本路径(如实际路径的一部分)必须硬编码以进行基本参考,因为它有助于webpack创建动态需求可能需要的所有模块的列表.

原因(来自webpack 文档),阅读动态需要.

  • 为我节省了大量时间。谢谢! (2认同)
  • @SubhamTripathi 我的意思是说你用我引用的那句话帮助我解决了我的问题,应该强调它:-) (2认同)
  • @jrh 感谢您更新的链接。已更新它们的答案。 (2认同)
  • 一个拥抱,你值得一个拥抱! (2认同)