package.json 正确配置入口文件

本文介绍了Node.js中package.json的main、type、exports、module和browser字段的作用,详细阐述了如何指定模块入口及类型。同时,讨论了TypeScript的入口文件解析策略,包括类型文件的查找和模块解析策略。
摘要由CSDN通过智能技术生成

参考文章:https://www.51cto.com/article/715402.html

在node中支持两种模块方案:CommonJS(cjs) 和 ECMAScript modules(esm)

小结

  1. node 中可以通过 main 和 type: module | commonjs 来指定入口文件及其模块类型, exports 则是更强大的替代品,拥有更灵活的配置方式。
  2. 主流打包工具如 webpack rollup esbuild 则在此基础上增加了对 top-level module 的支持。
  3. TypeScript 则会先查看 package.json 中有没有 types 字段,否则查看 main 字段指定的文件有没有对应的类型声明文件。
  4. 当这些字段同时存在时,browser = browser+mjs > module > browser+cjs > main查看分析过程

main

package.json 的 main 字段是最常见的指定入口文件的形式。当我们引用一个包的时候,它的入口文件就是 main 字段指向的文件。

{
   
  "name": "@std/map",
  "version": "1.0.0",
  "description": "",
  "main": "index.js"
}

但我们如何得知这个 index.js 文件是 cjs 格式还是 esm 格式呢?

一种方式是看后缀名是 cjs 还是 mjs,另一种方式是看 type 字段。

type

package.json 里提供了一个type字段用于标注用什么格式来执行.js文件。

{
   
  "name": "@std/map",
  "version": "1.0.0",
  "description": "",
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值