Webpack如何解决输入模块名称,例如' jquery' &安培; ' @角/ XXX'

时间:2017-09-22 19:51:18

标签: webpack

webpack入口点(https://webpack.js.org/concepts/entry-points/)的文档说条目值应指向文件。

const config = {
  entry: {
    main: './path/to/my/entry/file.js'
  }
};

然而,在我见过的许多例子中(通常围绕创建特定于供应商的输出),我注意到已经给出了一个模块列表。

var config = {
  // ...
  entry: {
      vendors: ['@angular/core','react','jquery']
  }
  // ...
}

Webpack如何接受字符串' @ angular / core'或' jquery'例如,并将其解析为磁盘上的javascript源文件?我错过了什么?

1 个答案:

答案 0 :(得分:1)

默认情况下,webpack遵循Node.js的模块分辨率。当导入既不是绝对路径(从/开始)也不明确是相对路径(从./../开始)时,它将被解析为模块,这意味着它是{ {3}}

例如,如果您导入jquery,您将使用从npm安装的模块,该模块应位于./node_modules/jquery中。如果在该目录中找不到该模块,它将移动到父目录并检查其node_modules目录。依此类推,直到找到模块或到达文件系统的根目录。

Webpack允许您通过配置Loading from node_modules Folders来更改模块的查找位置。如果配置该选项,则应确保包含"node_modules",否则您将无法导入从npm安装的模块。