本节内容来自以下链接的内容,并受 CC BY 4.0 许可证的约束。
除非另有说明,否则以下内容可以假定为基于原始内容修改和删除的结果。
string | string[] | Record<string, string | string[] | EntryDescription> | Function
'./src/index.js'
entry
配置用于设置 Rspack 构建的入口模块。
如果您正在构建单页应用程序或库,您通常只需要设置一个入口点。
要设置单入口,只需将入口模块的路径作为字符串传递给 entry
配置。
以上写法会自动将入口模块名称设置为 main
,等效于以下写法
入口模块的路径可以是相对路径或绝对路径。
如果 entry
设置为相对路径,Rspack 将使用 上下文配置 中设置的值作为基路径,默认情况下是 Node.js 进程的当前工作目录,即 process.cwd ()
。
您也可以使用 Node.js 中的 路径模块 生成绝对路径并将其传递给 entry
配置
设置入口值时,除了设置为 string
外,还可以传入 string[]
,表示入口包含多个入口模块。
例如,以下示例将 pre.js
和 post.js
构建到 page
的输出中。
多个模块会根据数组定义的顺序依次执行,所以 pre.js
中的代码会先于 post.js
中的代码执行。
如果您需要一次构建多个入口,则应该将 entry
设置为一个对象,对象中的每个键对应一个入口名称。
例如,以下示例将 page1
和 page2
构建为两个入口
将 entry
设置为对象时,可以将入口的值设置为描述对象。描述对象可以包含以下属性
string[] | string
'./src/index.js'
入口模块的路径。
false | string
undefined
运行时块的名称。当 runtime
设置时,将创建一个新的运行时块。您也可以将其设置为 false
以避免创建新的运行时块。
runtime
属性用于设置运行时块的名称,例如将 main
入口块的名称设置为 'foo'
。
false | string | 'jsonp' | 'import-scripts' | 'require' | 'async-node' | 'import'
undefined
此入口如何加载其他块。
boolean
true
是否为该入口创建一个按需加载的异步块。
'auto' | string | (pathData: PathData, assetInfo?: AssetInfo) => string
undefined
此入口引用的资源的 publicPath。
string
undefined
此入口引用的资源的 baseURI。
string
undefined
入口块的文件名。
string | string[] | object
undefined
由该入口生成的块作为库的格式,有关详细配置,请参阅 output.library。
string[] | string
undefined
当前入口所依赖的入口。使用 dependOn
选项,您可以将一个入口块中的模块共享到另一个入口块。
'fetch' | 'async-node'
undefined
用于设置加载 WebAssembly 模块方法的选项。默认包含的方法是 'fetch'
(web/WebWorker)、'async-node'
(Node.js),但插件可能会添加其他方法。
默认值可能会受到不同 target 的影响
'web'
、'webworker'
、'electron-renderer'
或 'node-webkit'
,则默认为 'fetch'
。'node'
、'async-node'
、'electron-main'
或 'electron-preload'
,则默认为 'async-node'
。string | null | undefined
undefined
此入口的层级,通过层级匹配在拆分块中使相应的配置生效,rules、统计信息和外部模块。
此配置仅在 experiments.layers 为 true
时生效。
如果传递了一个函数,则该函数将在每次 make 事件上被调用。
请注意,
make
事件会在 webpack 启动时触发,以及在 监视文件更改 时每次失效时触发。
或者
例如:您可以使用动态入口从外部来源(远程服务器、文件系统内容或数据库)获取实际的入口。
与 output.library 选项结合使用:如果传递的是数组,则仅导出最后一个项目。