我如何让Webpack解决我的加载器



我正在写一个Webpack加载器,我试图弄清楚如何让Webpack"识别"它之后,我已经npm安装加载器作为一个依赖。我的加载器名为turbine-loader,它在npm作用域@reactor中,因此该包可以在node_modules/@reactor/turbine-loader中找到。

当我做require('turbine-loader!../myFile');从一个模块,然后运行webpack我得到:

Module not found: Error: Cannot resolve module 'turbine-loader' in ...

如果,除了上面的,我把这个放在我的webpack配置:

resolveLoader: {
  alias: {
    'turbine-loader': require.resolve('@reactor/turbine-loader')
  }
}

它开始工作,但如果我不需要,我不想强迫我的加载器消费者这样做。有人能给我指个正确的方向吗?可以帮我把Webpack文档翻译成通俗易懂的英语吗?谢谢!

Webpack只是尝试按名称require您的加载器。所以如果你尝试require('turbine-loader!../myFile');,它将require('turbine-loader'),这是没有定义的。

相反,你必须将你的作用域名添加到require语句中:require('@reactor/turbine-loader!../myFile'); .

顺便说一句,对我来说它看起来很丑,我更喜欢你的选项alias:)

最新更新