必要字段

:::tips

  • version: 版本好
  • main: 主入口
  • module: cjs入口
  • exports: 配置多种类型的入口
  • unpkg: cdn地址
  • jsdelivr: cdn地址
  • files: 发布库时包含的文件
  • keywords: 关键词
  • homepage: github的readme
  • repository: 仓库地址
  • bugs: bug提交
  • dependencies: 库依赖文件
  • devDependencies: 开发时依赖的库 :::

    main module exports的区别

    main 是npm包的主要入口文件,当导入一个包时,实际上就是使用的main指向的地址文件。 main是遵循commonjs规范的,使用module.exports 。 module是ESM规范,是前端使用比较多的规范,使用import/export。

如果使用import导入库,最开始匹配module的文件,找不到则使用main指向的文件。 rollup打包工具提供了多种打包格式,可以在output中进行设置。

  • amd – 异步模块定义,用于像RequireJS这样的模块加载器
  • cjs – CommonJS,适用于 Node 和 Browserify/Webpack
  • esm – 将软件包保存为 ES 模块文件,在现代浏览器中可以通过
  • iife – 一个自动执行的功能,适合作为
  • umd – 通用模块定义,以amd,cjs 和 iife 为一体
  • system - SystemJS 加载器格式

files指定发布包的内容

开发过程中,项目文件比较多,包含了src、script、examples、dist等文件。在 npm 发包时,实际发包内容可以在 package.json 中 files 字段进行设置,只需将构建后资源dist(如果需要构建)进行发包,源文件最好不发,这样可以大大要锁安装包时需要下载包的大小。

devDependencies和dependencies的区别

进行日常业务开发时,这两个并无多大区别,因为当执行npm install或者yarn时,这两个配置的包都会进行下载。
对于库开发时,两者会有区别。
当安装一个库文件是 npm install react,就只会安装react项目下dependencies中的依赖,通俗的讲,react的运行是需要这些包的支持,如果不安装这些包,react的功能就无法实现。 devDependencies 下的依赖,只是进行开发是需要进行下载的。

homepage repository bugs等地址

  • homepage: 设置git中的地址,如github.com/shenshuai89…
  • repository: 设置仓库地址
  • bugs:设置bugs的提交地址