【发布时间】:2020-04-16 06:31:10
【问题描述】:
我重写了我的服务器端代码以使用实验性 esm 导入。这意味着__dirname 不再起作用。为了使这个库可以被非模块代码使用,我使用 webpack 转译了剥离所有导入并将其捆绑在一起的代码。但是,为了解决__dirname 问题,我有一个cjs 文件,它总是作为commonjs 模块加载,它只导出__dirname。但是,webpack 也会捆绑这个文件,并破坏 __dirname 的含义(无论你在 webpack 配置中传递哪个选项)。
所以我的问题是:我怎样才能说服 webpack 只需要这个单个文件,同时捆绑其他所有内容?
外部选项似乎只适用于不是通过路径加载的模块(如require('anyModule'))但不适用于require('./somefile.js')
PS:忽略插件不起作用。它只是在捆绑文件中包含一个错误,指出找不到该文件
【问题讨论】:
-
如果我理解正确,您希望文件(cjs ?)按“原样”加载而不被 webapck 修改?你能用file-loader 之类的东西来做它并加载这个特定的文件。我只是不确定它会如何与所有其他人联系起来