我想做这样的一个utils包,
它同时支持浏览器和node使用
目前是这样做的
src/
common/**
browser/**
node/**
index_ browser.js
index_node.js
用rollup分别打包上面两个js文件
并且将打包出来的两个文件
在package.json中分别指为 main和module入口
这样代码可以正常运行
问题就是package.json 的 types只支持字符串,如果写了browser目录下代码的d.ts文件,在node端用的时候,类型就报错了
这种情况该怎么处理呢
一个包能不能同时支持双端,主要看你用到哪些 API。如果你用到
window
,那肯定不能在 node.js 里跑;反之,如果你用到fs
、child_process
,那肯定不能在浏览器里跑。除非你自己想办法 polyfill。如果都没有的话,那就是同时支持。
至于 package.json 里的
types
,我不知道你指什么,包类型只有type
,必须是module
或者commonjs
,不能乱写。具体请参考 官方文档。