跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 请教一下, js 项目打包,发布 lib 和相关 type 方法
未分類
12 3 月 2021

请教一下, js 项目打包,发布 lib 和相关 type 方法

请教一下, js 项目打包,发布 lib 和相关 type 方法

資深大佬 : yazoox 2

一般,js 项目,webpack 打包后,只要把 dist 目录下的所有文件,部署到 aws 等云服务,就可以工作了!

那么,如果我提供了一些 api,发布到 npm ?需要啥特别处理 /流程么?尤其是,要支持 typescript,怎么处理?好像是要生成一个 custom.d.ts 文件!这个能自动生成么?

以及,想使用的第三方类库,没有提供 type,我自己的 typescript 项目如何使用?

有没有相关文档,介绍的比较好的!?

搜索了一下,暂时没找到写得比较好。 特来向大家请教一下

大佬有話說 (12)

  • 資深大佬 : yanguoyu

    如果你要写 lib 库,可以尝试用这个 https://github.com/yanhaijing/jslib-base,至于使用的第三方库没有 declared 文件,那就需要自己定义,可以看 ts 官方文档或者翻译文档。
    中文: https://www.tslang.cn/docs/handbook/declaration-files/introduction.html
    英文: https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html

  • 資深大佬 : vcfvct

    Type 的话 tsc 可以生成,一般 lib 的话也可以把所以相关类放在 index.ts ,这样别人就可以直接从你 lib 的 root import 了.
    后端 bundle 也可以试试 esbuild,treeshaking 什么的比较

  • 資深大佬 : vcfvct

    当然 index 里是 export 一下,不是真正的所以 source

  • 資深大佬 : musi

    蹲一个好用的方案

  • 資深大佬 : ccraohng

    如果不是 ts 写的,package.json 指定 typings 字段。
    如果是 ,打开输出 dts 选项。
    或者发布 @types 包
    为第三库写申明 搜一下应该蛮多的,

  • 資深大佬 : hupo0

    你可以参考别人的库是怎么打 npm 包和发布的,比如说我的。

  • 資深大佬 : hupo0

    @hupo0 我靠,我想换行怎么就发出去了。
    https://github.com/Iplaylf2/no-stream
    主要看顶级目录,package.json 和 gulpfile.js 。

  • 資深大佬 : LOWINC

    https://www.npmjs.com/package/tsdx

    我一般用这个

  • 資深大佬 : zhuweiyou

    如果你是 TS 写的, tsc 可以直接编译产出 d.ts
    如果你是 JS 写的,据我所知得手写

  • 資深大佬 : wobuhuicode

    很简单,package.json 指定一个 .d.ts 文件就可以了
    “types”: “index.d.ts”

  • 資深大佬 : ruoxie

    https://github.com/umijs/father

  • 資深大佬 : fox2081

    如果是 TS 项目,会自动生成 dts,但是是一对一的,不会打包成一个,想打包的话 rollup 、webpack 都有提供一些插件,但效果都不慎理想,之前打包类库有用过一个 rollup-plugin-dts,项目代码一多,到时候声明文件就不是人能看懂的了。TS 现在已经不推荐使用 namespace 和 module 了,但是 dts 里面还是挺好用的,后面还是通过自动生成的手动整理。

    JS 项目想生成 dts 估计不太靠谱。

    支持 ts,就要在 package.json 中的 typings 中指向你项目中的 dts 文件,文件名没关系,就行 main 这样的入口文件。

    第三方类库如果没有自带声明,可以搜 @types/xxx,额外安装声明文件,不冷门的基本都有,没有的话在你项目内容可以“帮”他写,一般是 declare module ‘xxx’,放在你 tsconfig 包含的目录里。

    dts 是解除 ts 之后就让人爱不释手的东西,即使是 js 项目,编辑器也可以根据其他项目的 dts 提供智能提示,我现在公司调用后端的接口就是通过后端扫描数据结构和接口路由自动生成并发布的一个项目,声明文件截至目前有 16325 行,打包之后的代码只有 12kb,里面有 10kb 还是后端生成的枚举文件,使用起来接口地址、参数定义、返回格式统统智能提示都提供,如果是 ts 项目,接口更新会直接在编译时把需要改的地方列出来,平时开发直接不用查文档,组员用过都说好

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具