【发布时间】:2018-07-26 20:09:55
【问题描述】:
我想捆绑一个 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'
}
【问题讨论】:
-
添加
target: 'node'应该适合你 -
我已经设置了 target: 'node'。
-
有趣...
/* webpackIgnore: true */也可以。通过这样做,webpack 不会处理 require。尝试做:require(/* webpackIgnore: true */ process.argv[2]) -
我可以添加
require(/* webpackIgnore: true */ process.argv[2]),但实际需要发生在我无法修改的依赖项中。 -
ouch... 至少尝试修改 node_modules 上的代码,看看是否可行,否则我建议您直接前往 webpack repo 并在那里提出问题。请务必声明这是一个重要的示例,stackoverflow 中没有人知道它。