首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用rollup和rollup捆绑策略的包依赖项

使用rollup和rollup捆绑策略的包依赖项
EN

Stack Overflow用户
提问于 2021-08-25 04:34:49
回答 1查看 2.9K关注 0票数 1

我正在开发一个npm包,它使用rollup来捆绑并发布到NPM。我想了解一个依赖关系是否应该被汇总捆绑,最佳实践是什么。这是我一步一步的分析:

  1. 在“src”中使用的每个依赖项都应该添加到“deps”或“peerDeps”中。
  2. 如果你选择只把它放在‘peerDep’中,而不是'deps',考虑到本地的构建目的,最好添加到‘devDep’中。否则,您可能需要使用第三方工具来安装“peerDep”中的依赖项,或者升级到npm@7 (我还没有使用npm@7 )--我猜这个部分有争议,但是这个主题并不是关于'peerDeps‘的,所以让我们继续讨论。
  3. 如果在“外部”配置中未排除rollup,则rollup将绑定“src”中使用的所有依赖项。默认情况下,它并不关心在“deps”、“peerDeps”或“devDep”中提到的依赖项。

但这似乎不是一种预期的方式。对于“deps”中的任何依赖项,使用此包的项目将安装此依赖项,然后webpack可以处理和处理。rollup不需要将其放入包文件中。如果是这样的话,意味着我们需要让汇总来处理来自第三方的任何依赖项都是外部的?也许使用这个策略:

代码语言:javascript
复制
// https://github.com/remix-run/react-router/blob/v5.2.0/packages/react-router/rollup.config.js
function isBareModuleId(id) {
  return (
    !id.startsWith(".") && !id.includes(path.join(process.cwd(), "modules"))
  );
}

或者使用总结性-插件-点对点-外部

代码语言:javascript
复制
peerDepsExternal({
  includeDependencies: true,  // FIXME: 'deprecated', no idea why?
}),

我想指出这里的最佳做法,希望有人能纠正我,如果任何一步的想法是不正确的。欢迎任何建议。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-08-26 14:03:34

我认为不仅'peerDependencies‘,而且’依赖‘应该是’外部‘,以汇总打包。您可以在配置中使用总结性-插件-点对点-外部

代码语言:javascript
复制
peerDepsExternal({
  includeDependencies: true
}),

或者只使用条件反应路由器使用:

代码语言:javascript
复制
function isBareModuleId(id) {
  return (
    !id.startsWith(".") && !id.includes(path.join(process.cwd(), "modules"))
  );
}

它将标记/node_modules/下的所有deps的“外部”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68916816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档