获取中...

-

Just a minute...

试着自己发布了一个npm包,记录一下自己踩的坑

package.json

首先npm init,然后添加type:module字段,将其定义为一个es6模块。然后在files字段设置要发布上去的内容,比如dist文件夹。

接下来将开发用到的依赖添加到devDependencies里面去,比如react,和打包工具等等。这样当我们的包被引入时,就只会引进来我们的包,而不会把我们的依赖也一起安装下来。

rollup设置

我们使用rollup来打包。常用的打包工具中rollup比较简洁,适合库的打包。我们在项目根目录添加rollup.config.js来配置打包参数。output中我们根据format的不同,分别打包到dist下的cjs和esm目录,

1
2
3
4
5
6
7
8
9
output: [
{
file: "dist/cjs/index.js",
format: "cjs" },
{
file: "dist/esm/index.js",
format: "esm",
},
],

然后为了支持ts,我们添加插件rollup-plugin-typescript2。

之后我们将rollup打包命令添加到package.json的build命令下。

然后因为我们的组件里依赖了react,为了避免将react也打进来,我们需要再添加externals字段,将react添加到其中。

之后我们执行npm publish就可以了。

相关文章
评论
分享
  • 简单通俗解释HTTP缓存

    开始前的碎碎念 最近加班真的很严重,组里同事们都已经苦不堪言。业务交付压力非常大,根本没时间去磨练本领,学习技术。真的很讨厌这种没有成长的日子,每天被业务需求赶着跑。每天下班之后,本来应该用于提升自我的时间也被压榨用来写业务代码。 ...

    简单通俗解释HTTP缓存
  • 关于SPA与SSR的简单介绍

    本文将简要介绍几个概念,如SPA, CSR, SSR, 前端路由。适合小白,我将用浅显又生动的话语来介绍这些概念。 什么是SPASPA(single page application)单页应用,占了现如今web应用的绝大多数。其意思就...

    关于SPA与SSR的简单介绍
  • 前端知识随手记录

    最近几个月被业务需求搞的要死,已经到了周末两天都要去加班的地步了。也没机会像之前那样,晚上下班之后到家学习一两个小时了。最近被逼急了,想着这样加班岂不是永远没有学习的时间,没有学习怎么能提升自己,于是晚上决定十一点到家也要翻翻书,哪...

    前端知识随手记录
  • 动手实现react-ssr 2

    仓库链接:本篇代码 运行方法参考readme,请使用pnpm,因为本次使用的rspack尚未推出1.0版本,预计后续可能会有很多breakchange,所以lock文件至关重要,而我只上传了pnpm的lock,非常抱歉。 环境:no...

    动手实现react-ssr 2
  • 动手实现react ssr

    关于ssr相关的介绍,可以移步之前的一篇博文,本文不再赘述 日常工作中,我们可能都接触过ssr,不过我们可能通常是借助于框架(例如Next.js)的支持来完成ssr。今天我想尝试,摆脱高度封装的前端框架,只依赖react相关的库,来实...

    动手实现react ssr
  • 基于tapable来模拟webpack插件机制

    前两天看到ByteFE公众号发了篇文章,从源码去讲webpack。我之前也从很多方面去学习webpack,只是源码一直没太看得进去,这一次我想仔细地读一读。 简要介绍tapable说实话,之前看webpack源码一直没看的太懂,...

    基于tapable来模拟webpack插件机制
  • 深入js——作用域,作用域链,执行栈(一)

    最近在补js基础。当初自学js的时候,总是感觉学的不扎实。只能说不去上手,再怎么死读书,也理解不了。积累了经验,然后自己去思考,这个时候再去看理论,就容易理解了。 感觉工作一年以来,确实学到了很多,但是过于专注于应用方面的知识,反倒...

    深入js——作用域,作用域链,执行栈(一)
  • webpack运行时代码简要分析

    开个坑,主要也是怕自己后面忘了 简单写写,有空了补上 __webpack_modules是一个数组,每个元素都是一个函数,函数接受三个参数:第一个参数module好像没用到,第二个是一个对象(会把本模块要导出的属性,赋值给这个对象),...

    webpack运行时代码简要分析
  • webpack动态加载原理简述

    为什么需要动态加载上一篇讲我写webpack针对markdown的loader的时候,提到了希望能动态加载以优化性能。篇幅原因没有展开说,打算单独写一篇文章讲一下。 当我们访问网站的时候,浏览器会向服务器请求页面资源。首先请求的当然是...

    webpack动态加载原理简述
  • 编写一个简单的webpack loader的踩坑

    因为觉得hexo框架搭的博客功能一般,就有了想要自己写一个博客的想法。然后就想着如果把markdown文件也放到项目里的话,会比较方便,发现需要编写一个加载markdown的loader,于是就有了这篇博客,来记录一下踩过的坑和收获...

    编写一个简单的webpack loader的踩坑
Please check the parameter of comment in config.yml of hexo-theme-Annie!