Webpack无法解析目录

时间:2019-07-12 17:12:53

标签: webpack requirejs

我正在将旧的RequireJS / CommonJS / AMD / Knockout迁移到Webpack。当我尝试编译代码时,出现错误消息:

  ./Scripts/pbkdf2.js中的

错误   找不到模块:错误:无法解析'C:@Code \ Scripts'中的'/ Scripts / sha1'

我理解该错误,但无法使Webpack为/Scripts依赖项解析/Scripts/sha1目录。

相关的Webpack配置选项:

config = {
  resolve: {
    modules: [
      path.resolve(__dirname),
      "node_modules"
    ]
  }
}

/Scripts/pbkdf2.js文件的定义如下:

define("/Scripts/pbkdf2", ["/Scripts/sha1"], function (sha1) {
  ...
})

我尝试为resolve.module添加一个path.resolve(__dirname, "Scripts"),但这没有用。我认为这样做的话可能会起作用,然后再从/Scripts/中删除/Scripts/sha1部分,但我想避免遍历整个项目并更新所有这些引用。

如何让Webpack根据项目的根目录解析这些子目录?我以为path.resolve(__dirname)是这样做的,但似乎它不是项目根目录,而是文件执行所在的目录?

1 个答案:

答案 0 :(得分:0)

我认为我可以通过提供将resolve.alias模块映射到适当的基本目录的/Scripts/*来解决我的问题。我猜RequireJS试图相对解析路径,而不是使用Webpack resolve.modules配置。

对配置的相关更改:

config = {
  resolve: {
    alias: {
      "/Scripts": path.resolve(__dirname, "Scripts")
    }
  }
}

此别名与以/Scripts开头的所有必需模块匹配,因此似乎可以像我现在期望的那样解析我的模块。