首页 > 解决方案 > 我怎样才能让“要求”为动态表达式工作

问题描述

我想捆绑一个 Node.js 脚本,它在某处调用require(expression). 将脚本与 webpack 捆绑后,require 失败。这是一个超级简化的例子:

// main.js
const x = require(process.argv[2])
console.log(x)

我想对这种情况有一个“正常”的要求,或者告诉 webpack 包含一个我知道将来需要的特定文件(捆绑后)。为了坚持这个例子,我知道process.argv[2]捆绑之前的价值。

注意:基于表达式的 require 代码是一个依赖项,所以我不能调整 require 代码。

这是我的 webpack.config.js

module.exports = {
  entry: './test.js',
  output: {
    filename: 'test.js'
  },
  target: 'node'
}

标签: node.jswebpackwebpack-4

解决方案


require路径是相对于它所使用的文件的路径。因此,您需要找出从执行require的位置到它从参数加载的文件的路径。然后将相关部分添加到参数中。


推荐阅读