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源文件?我错过了什么?
答案 0 :(得分:1)
默认情况下,webpack遵循Node.js的模块分辨率。当导入既不是绝对路径(从/
开始)也不明确是相对路径(从./
或../
开始)时,它将被解析为模块,这意味着它是{ {3}}
例如,如果您导入jquery
,您将使用从npm安装的模块,该模块应位于./node_modules/jquery
中。如果在该目录中找不到该模块,它将移动到父目录并检查其node_modules
目录。依此类推,直到找到模块或到达文件系统的根目录。
Webpack允许您通过配置Loading from node_modules
Folders来更改模块的查找位置。如果配置该选项,则应确保包含"node_modules"
,否则您将无法导入从npm安装的模块。