安装npm包的时候,那些warnng是写在哪里的?

小哈
  • 214

安装npm包的时候,那些warnng是怎么写进去的。

clipboard.png

例如 我写了个 react 组件。我希望别人用我的组件时候,要先安装react。
我应该怎么判断他装没装react? npm ls?我的提示应该写在哪个文件里?或者是监听事件?

可能是我的百度关键词有问题,没找到一条有关的。


根据一楼大佬的回答的尝试

应该把react的依赖写入peerDependencies 这样当下载你的库的时候npm会自动检查package.json里有没有引入react 如果没有 则会抛出警告,我们假设这个警告叫x

我的组件里我引入了 react ...
clipboard.png
然而我打包的时候,不去打包这个依赖

clipboard.png

我把
clipboard.png

这样别人再用我的这个时候他就能有提示了吗?

但是我试了一下。。并没有提示需要安装react。
clipboard.png
我能保证我没有全局安装过react

----------------------- 6.11更新 -----------------------

突然我又觉得这样用户用的时候还有自己手动install,体验也不好。有没有方法
让我开发的组件(某个打包压缩后的 lib目录文件下的 inde.js)不带第三方库的依赖(例如react ),而让依赖自动安装到用户的本地。

----------------------- 6.11 第二次更新 -----------------------
额。问题到这里感觉已经有点乱了。回归核心。
1.就是我想让我开发的组件包体积更小,让我用到的其他著名的第三方库(例如react.js等)不参我开发的组件的打包(但是我用了好么!!!我import了!!!)
2.虽然1的这种情况,大部分不会发生,因为这些用户在用我的react组件时,肯定装了react。但是万一他没装,我想让用户在装我的包的时候,能自动安装,能收到提示。

就这两点,我觉得应该说明白了。

回复
阅读 2.3k
2 个回答
阿蛇
  • 3k
✓ 已被采纳

首先回答你,你图中画圈的地方如何实现
npm-deprecate

其次,你的需求,应该把react的依赖写入peerDependencies 这样当下载你的库的时候npm会自动检查package.json里有没有引入react 如果没有 则会抛出警告,我们假设这个警告叫x。
如果你问的是怎么自定义这个警告x,抱歉,我不知。
------更新------
你dependencies里移除掉依赖啊
写在dependencies里npm自然会去下载依赖啊
只写在peerDependencies就好啦
你是不是对package.json有什么误会

小哈
  • 214

这个答案已经重新编辑到问题里了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏