需要提前确定是针对nodejs还是浏览器js吗? 还是说,任意开发,到时候,既可以roullup打包成esm也可以打包成cjs?

想要开发一个npm库,
请问下,
1、需要提前确定是针对nodejs还是浏览器js吗?
还是说,任意开发,到时候,既可以roullup打包成esm也可以打包成cjs?

2、是否有一些教程指导如何开发一个属于自己的npm库呢?

3、npm管理的不仅仅是nodejs的库,还有浏览器javascript的库是吗?


更新-01

比如,我们的库,没有使用OS的API(也就是说是可以nodejs和浏览器js都能使用的);
我们需要打包成esm和cjs都打包一份是吗?(这样import 和 require都可以引用)

阅读 2k
2 个回答
  1. 要看你用哪些 API,比如,你要操作文件系统,用 fs,那就只能跑在 node.js;如果你要用 window.xxx,比如 localStorage,那就只能跑在浏览器
  2. 如果是纯数据,用标准 JS 的语法元素,那就无所谓
  3. 我之前做过一个视频,可以看看:Node.js 开发 RAR 解压缩命令行工具
  4. 是的,所有的 js 仓库,都可以托管到 npm
  1. 需要,如果是没有使用特定寄主环境API,则不需要,另外esm和cjs是模块规范跟寄主环境API没啥影响
  2. 最好就是直接参考现成的库,看它的github代码。

====

需要打包成esm和cjs各打包一份,这样子可以避免很多兼容性问题

推荐问题
logo
Microsoft
子站问答
访问
宣传栏