【问题标题】:Resolve the module loaded by plugin in Webpack config解析 Webpack 配置中插件加载的模块
【发布时间】:2015-09-14 15:47:09
【问题描述】:

以下example 仅在some-module 模块是Node 模块时有效,并且不适用于Webpack 插件加载的模块。

如何使用 Webpack 自己的逻辑(enhanced-resolve)来解析 config 中的模块路径?

在我的情况下是bower-webpack-plugin,但我想这应该与任何ResolverPlugin 以相同的方式工作

var BowerWebpackPlugin = require("bower-webpack-plugin");
module.exports = {
    ...
    module: {
        plugins: [new BowerWebpackPlugin()],
        loaders: [
            {
                // this won't work
                test: require.resolve("some-bower-module")
                loader: "imports?this=>window"
            }
        ]
};

【问题讨论】:

标签: node.js webpack


【解决方案1】:

webpack.config.js 内的require.resolve 由 Node 解析,而不是 Webpack 的解析器。您可以使用 require("path").resolve("path/to/bower/module") 获取 Bower 模块的完整路径。

【讨论】:

  • 没错。问题是如何改用 Webpack 解析器。当然,考虑到 Webpack 是如何记录的,这不是最简单的问题。我对硬编码“path/to/bower/module”感到不舒服,这正是我试图通过使用插件不做的事情。
  • Webpack 在你配置它的解析器逻辑时不能使用它自己的解析器逻辑。
  • 我不能要求enhanced-resolve 并使用其插件解析模块路径吗?我怀疑我可以。
猜你喜欢
  • 2016-03-25
  • 2017-02-10
  • 2017-08-07
  • 1970-01-01
  • 2023-01-25
  • 2021-07-21
  • 2020-08-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多