【问题标题】:npm package.json dependencies - for a library componentnpm package.json 依赖项 - 用于库组件
【发布时间】:2017-02-14 22:03:53
【问题描述】:

假设我正在开发一个可供其他开发人员使用的库。 MyPackage 依赖于时刻。使用我的包的开发人员也依赖于时刻。所以 moment 将作为库 package.json 和应用程序 package.json 中的“依赖项”存在(因此被打包两次)。有没有办法只打包一次?如果消费者有,就用他们的,否则用我的?

【问题讨论】:

  • 如果他们依赖的版本与您不同怎么办?只需处理您自己的依赖项,不要担心其他人的。
  • 我意识到了。如果我们对一个版本进行标准化,如果我们不必多次打包所有内容,我们可以减少最终的有效负载。 Moment 只是众多依赖项之一
  • 你真的有输出文件大小的问题吗?这看起来很像过早的优化。也就是说,如果它仅供内部使用并且每个人都乐于始终使用相同的版本,那么您可以建立对等依赖 nodejs.org/en/blog/npm/peer-dependencies
  • 是的——它是一个公司网站,我们可以在一个版本上标准化——我们还需要将最终页面的有效负载保持在最低限度,因此绝对需要尽可能减少臃肿。

标签: npm package.json


【解决方案1】:

如果依赖范围匹配,默认情况下它已经在全新安装中发生。

npm v>=3 是否根据安装顺序和深度组合依赖项,请参阅here

另外,如果您在同一个文件夹上工作了一段时间,可能会有一些垃圾,可以使用 npm dedupe 擦除,请参阅 here

理论上,如果您的库和开发人员的库都使用相同的版本范围,则不应重复 moment。至少如果npm dedupe 被调用或node_modules 被擦除并且npm i-nstalled。

【讨论】:

    猜你喜欢
    • 2013-01-06
    • 1970-01-01
    • 2016-08-02
    • 1970-01-01
    • 2018-11-07
    • 2015-07-20
    • 2020-07-28
    • 2018-12-25
    • 2014-06-06
    相关资源
    最近更新 更多