如何发布npm包(二)

130 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第18天,点击查看活动详情

在发包前构建

通常我们发布前需要改版本,构建,然后发布,为了防止忘了构建,建议加prepub或者prepare命令,这样可以做到自动清理及自动构建

提供类型说明文件,使用types入口

现在大家都用ts写前端了,我们也需要提供index.d.ts文件,或者直接用ts写,用tsc构建后会自动生成d.ts文件,这样使用者可以自动关联参数属性、对象成员类型等等

规范dependencies,确保里面只包含运行时的包

虽然我们安装的时候也不太敢直接安装dependencies,但是为了严格规范,还是建议把dev和dependencies区分开来,这样更为严谨

规范版本号

要对版本号做用对应的说明,或者遵循社区的默认标准,不要搞的太混乱

要把代码提前编译好

不要直接用源码去作为整个包的入口,因为通常我们编译的时候都不会编译webpack的代码,这样就很容易出兼容性的问题

使用rollup进行库打包

通常来说rollup更适合库打包, 但是随着时间发展,webpack也有做优化

发布带有sourcemap的代码

当你的库被调试的时候,通常来说很难调试,因为代码被压缩混淆了,提供sourcemap之后就会方便调试

不要把构建后的代码放到代码仓库里

这种方式会导致代码不可读,不方便维护

需要注意的是早期npm包版本有个问题,整体是嵌套的结构,这就会导致重复的包被多次生成;后来采用扁平化的方式以及向上寻找依赖,如果重复不安装,但是这产生了新的幽灵依赖的问题,本来没声明的东西也能在项目里访问到,现在有types还可能会导致type冲突。所以npm5就引入了lock文件