Webpack - 找不到 raw-loader 模块。

5

我需要将JS文件作为字符串加载,以便对其进行分析。 我正在尝试在Webpack(2.2.0)中使用raw-loader。

我得到以下错误提示:Cannot find module 'raw-loader!../

我已经尝试过(路径是正确的):

let app = require('raw-loader!../../app.js').default;

let app = require('!!raw-loader!../../app.js').default;

我甚至尝试过不使用内联方式。Raw-loader并没有被调用,它只是尝试正常加载JS文件:

module.exports = {
  module: {
    rules: [
      {
        test: /\app.js$/i,
        use: 'raw-loader',
        loader: 'raw-loader',
      }
    ]
  }
}

我的项目的package.json中有raw-loader。它在我的node模块中存在。我已经删除了我的node_modules并重新安装了它。我查看了许多解决方案,但似乎没有一个指向解决方法。


你使用的 raw-loader 版本是什么? - phpcoderx
我使用的是0.5.1版本,但我也尝试了最新版本。我怀疑我的配置文件中缺少某些内容,但我找不到它。 - Diodeus - James MacFarlane
3个回答

3

你的正则表达式模式存在错误。

你正在使用匹配响铃字符(ASCII 7)的\a

.可以匹配任意字符,你需要对它进行转义。

此外,同时使用useloader会产生歧义。你应该只使用其中一个 - 参见这个回答: 在 Webpack 2 的 module.rules 中何时使用'use'和'loader'?

尝试使用:

module.exports = {
  module: {
    rules: [
      {
        test: /app\.js$/i,
        loader: 'raw-loader'
      }
    ]
  }
}

如果我注释掉那个规则,内联版本仍然无法正常工作。 - Diodeus - James MacFarlane
你尝试过只使用配置文件中的加载器(当然要更新正则表达式模式)吗?尝试使用配置加载器并像这样导入文件 - let app = require('../../app.js').default; - lavor
我还编辑了我的答案,使用了 useloader - lavor
是的,我已经尝试了所有组合,但仍然无法找到原始加载器模块。 - Diodeus - James MacFarlane
你能找到这个模块吗?它在node_modules里面吗? - rich green
是的,它也在 package.json 中。 - Diodeus - James MacFarlane

0
首先我会更新 webpack。你目前使用的版本已经比最新版本落后了 2 个主要版本。也许错误信息已经得到了改进!此外,你可以运行 webpack --display-error-details 查看更多有关错误的信息。

我想这样做,但这是一个巨大的项目,我不能强制整个团队进行这种改变。 - Diodeus - James MacFarlane


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接