请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Library项目的依赖包安装问题

在之前的应用级别项目中,我们仅仅是包的使用者,安装策略是明确的

npm i --save <package> // 需要打包进bundle的包
npm i --save-dev <package> // 无需打包进bundle的包

而当前是工具级项目中,我们看到设置了externals的外部依赖清单后DellLee都统一以–save安装了,这样对吗?
一旦用户安装我们的包,如果与他们package.json中依赖包的版本号不符合,会不会起冲突?后安装的会不会覆盖掉先安装的?


我认为:
我们现在是包的开发者,通过externals指定了外部依赖后,应该以peerDependencies方式配置依赖包会不会更好?
用户在安装我们的包时,若遇冲突只给予提示安装让他自己去决定安装的版本岂不是更好?

正在回答

2回答

Dell 2019-03-02 16:50:08

同学你说的非常正确,如果是library,依赖放在peerDependencies 是非常正确的,这块我没有展开深入,是因为后面我会专门讲一套开源项目的课程,里面我会详细讲解peerDependencies的内容。这里重点在于让同学们知道,库代码的基础配置内容,library和libraryTarget之间的一些关系。

1 回复 有任何疑惑可以回复我~
  • 提问者 renderman #1
    还想问下:target和output.libraryTarget的区别,文档看的头大。
    target默认值是web,如果你想把开发的包运用到node上必须指定为node,所以想搞清楚仅仅设置libraryTarget:'UMD'是不是还是不能在node上跑? 我的理解,本质上target目的是为了构建一些runtime代码来加载chunk使用。    而libraryTarget,是chunk自身封装的格式。    不知道理解的对不对,如果理解的对的话,Library这节课,我们为了能在所有平台运行,除了libraryTarget:’umd'之外,还应该根据具体运行环境,指定多套配置方案。比如在浏览器、node、electron上使用,我们应该写成module.export = [config1,config2,config3];
    回复 有任何疑惑可以回复我~ 2019-03-02 17:23:22
  • Dell 回复 提问者 renderman #2
    同学我觉得你可以先把课程看一遍之后,回来再看一次target的内容,我说的是output里面的target
    回复 有任何疑惑可以回复我~ 2019-03-02 19:44:17
  • 提问者 renderman 回复 Dell #3
    好的,我并没有混淆两者的区别哈。
    回复 有任何疑惑可以回复我~ 2019-03-02 20:12:40
慕桂英5446361 2020-01-08 16:12:01

好厉害 一下子说明白了 困惑好久的问题

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号