package.json中main:umd字段适用工具、命名规范及通用性问询
关于main:umd字段的相关说明
- 字段属性
main:umd不属于前端生态的通用标准配置,是popper项目的自定义字段,目前没有任何主流前端打包/构建工具(webpack、Rollup、Vite、esbuild等)会默认识别该字段。 - 前端生态通用的标准入口字段
目前业内普遍遵循的package.json入口字段有以下几类:
main:CommonJS格式的默认入口,所有Node.js环境和前端打包工具都默认支持module:ES Module格式的入口,被Rollup、Vite、webpack 2+等所有现代前端构建工具支持browser:专门针对浏览器环境的入口标识,用于区分Node端和浏览器端的不同入口逻辑exports:Node.js 12+版本支持的入口配置字段,可以更细粒度地按环境、导入方式指定对应入口,是目前官方推进的标准方案
- 自定义字段的使用说明
你可以自行添加类似main:esm的自定义字段,但如果需要让打包工具识别该字段,需要手动在对应工具的配置中修改入口解析规则:比如在webpack中可以修改resolve.mainFields配置数组,把自定义的字段加入到解析优先级列表中即可生效。
popper项目中定义main:umd的主要作用是给项目内部的构建脚本使用,他们自己的打包脚本会读取该字段的路径作为UMD格式产物的输出位置,避免在构建脚本中硬编码路径,方便维护。
内容的提问来源于stack exchange,提问作者Roman Pokrovskij
相关产品推荐
相关产品推荐

