使用TSDX发布npm包

731 阅读2分钟

记录学习过程,如有错误欢迎指出

在我们日常编码的时候,难免会遇到重复的业务需求.我们就可以封装自己的组件包或工具包. 虽然绝大部分的网上都有开源的,那为什么我们自己还要封装呢? 我的回答是:别人封装的不一定适合你,就算适合你当前的业务需求那也不是你自己亲手写的,一旦出了bug,你也无法定位.终上所述我觉得自己封装包是非常有必要的,既能加强自身能力又能复用

发布一个包并不复杂,复杂的是搭建环境 TSDX就是一个帮我们搭建环境的库

起步

//安装tsdx
npm install -g tsdx
//创建tsdx模板
npx tsdx create [包名]

此时就会出现三个选项

Screen Shot 2022-10-23 at 19.34.54.png

可根据自身需要选择,这里我选择React的模板.

等待创建完成即可

创建完成后的目录结构 Screen Shot 2022-10-23 at 19.38.27.png

注意

需要修改example下的package.json

"parcel": "^1.12.3",
//改为下面的
"parcel": "1.12.3",

之后启动两个终端 终端1打开项目根目录执行npm install 终端2打开项目根目录下的example文件夹执行npm install

/src下为我们编码的地方 /example下是我们项目demo演示的地方

之后就可以启动项目了(注意启动顺序)

//终端1
npm run start
//终端2
npm run start

打开localhost:1234

为什么需要启动两个终端

终端1的作用是将我们的源码打包到dist下,一旦我们保存了代码.就能自动打包到dist下

终端2的作用是监听dist目录,一旦dist目录发送变化,就自动引入到example/下

example下的效果就是我们上传npm后别人下载使用的实际效果

编码

在使用Ts+React的模板时我推荐使用css in js,为什么呢,因为要做样式隔离,刚好css in js就有这效果.

好像国内并不对css in js感冒,老外倒是很喜欢css in js

注意点

注意点1:

在example/index.tsx中有一行代码

import { demo } from '../.';

这里的'../.'就是会先来到项目根目录,然后项目根目录下又有package.json,那么它就会根据package.json中的main字段进行查找

注意点2:

在准备上传npm时,我们检查一下我们的包名是否已经在npm上有人使用了,不能出现同名包

注意点3:

因为tsxd创建模板时并没有为我们提供一些npm需要的信息.

所以在上传之前我们还需要在根目录下的package.josn补充一些信息

keywords
description
repository

上传

没注册的先注册npm账号

有了账号之后

npm login
npm run publsh

记录学习过程,如有错误欢迎指出