我有一个与NodeJS和浏览器兼容的库,两者都通过Webpack运行以生成最终捆绑包。我遇到的问题是Webpack会将所有
我已经阅读了可以使用
示例:
require()
语句重写为__webpack_require __()
并尝试对库进行捆绑,但这对于像fs
和worker_threads
之类的东西不起作用。如何使其忽略特定输入字符串中的某些require()
和相关机制(require.resolve()
、import
等)?我已经阅读了可以使用
webpack.IgnorePlugin
,但我不想让用户在他们的构建中添加特殊规则来使用我的库。我也无法让它自己工作,它仍然重写了require()
。我还读到可以使用eval('require("fs")')
,但这似乎很麻烦,但如果这确实是最好的方法,我愿意这样做。示例:
//example.js
if(typeof window !== "undefined") {
//Browser
var myWorker = new Worker();
}
else {
//NodeJS
var Worker = require("worker_threads"); //I want Webpack to keep this line as-is
var myWorker = new Worker();
}
var _require = eval('require');
,然后在文件中的任何地方都使用它。 - Cobertos