SuperAPI AI 工具集

package-publishing

编程与开发

查看项目

更新于 10-16 07:24

技能介绍

用途:本技能整理现代 npm 包发布模式,用于配置包入口点、条件导出、双格式构建、发布 scoped 包,以及排查模块解析问题。不适用于应用级打包(Vite/webpack 应用配置)、monorepo 工作区编排(Turborepo/Nx)和私有仓库搭建(Verdaccio/Artifactory)。

主要能力与要点:用 package.json 的 exports 字段替代 main/module 作为主入口并封装内部结构;main 作为不支持 exports 的旧消费者回退;module 为打包器约定,Node.js 不使用;types 条件必须位于每个条件块首位;支持子路径导出(如 "./utils")与 import/require 条件切换 ESM/CJS;"type": "module" 使 .js 为 ESM,CommonJS 用 .cjs;"sideEffects": false 启用 tree-shaking;peerDependencies 声明共享运行时依赖;engines 标注最低 Node 版本;files 白名单控制发布内容;prepublishOnly 确保发布前构建;npm pack --dry-run 预览包内容;--provenance 或 trusted publishers 提供构建证明;scoped 包首次发布需 --access public。

常见错误:types 放在 default 之后;exports 缺少 "./package.json";import 与 require 暴露不同 API;新包只用 main;ESM 输出 .js 却未设 "type": "module";发布 src/ 或 node_modules/;缺少 prepublishOnly;库使用默认导出;发布前未用 npm pack 验证;框架插件未声明 peerDependencies;未启用 provenance;"type": "module" 下 CJS 类型用 .d.ts 而非 .d.cts。

限制:资料未提供具体安装命令、版本号、收费信息或平台支持细节。