【问题标题】:Best way to handle an npm packages dependencies?处理 npm 包依赖项的最佳方法?
【发布时间】:2022-01-06 22:11:21
【问题描述】:

我正在尝试将几个 Vue.js 组件从主应用程序拆分为存储在存储库中的 npm 包。然后可以在两个单独的站点上导入和使用此包。我正在使用 Webpack 捆绑所有内容,但对应该使用的布局有一些疑问。

看到 Vue.js 和 Vuex 之类的东西将作为依赖项安装在主应用程序上,我知道一旦安装在两个主应用程序上,该包就可以访问这些内容。

我的主要困惑是如何处理仅属于包的依赖项,我是否将其捆绑为 webpack 的一部分,并在应用程序上运行 npm install 会自动安装“依赖项依赖项”吗?这些东西有通用标准吗?

【问题讨论】:

标签: javascript vue.js npm


【解决方案1】:

最简单的做法是在package.jsondependencies 部分列出它们。您正在使用的包管理器工具(通常是 npm 或 'yarn`)将负责删除依赖项,因此如果您的父应用程序和子项目都具有相同的依赖项,您最终只会得到一份副本在最终捆绑包中。

我强烈建议您在组件项目中的版本号比在父项目中更宽松。因此,在父项中,您可能会说依赖项是"vue": "1.2.3",而在组件项目中是"vue": "^1.1.0" 或类似的东西。这样父级可以控制特定版本,而您的组件从父级获取实际版本。

【讨论】:

  • 所以我的理解是将 package.json/lock 文件保留在我的自定义包中,并在捆绑和提交时完全省略我的包 node_modules 目录,并使用我的部署从父应用程序手动安装这些文件@ 987654326@?
  • 是的。一般来说,这对于组件或库来说是一个很好的计划 - 指定依赖项并让工具实际提取它们。除非您有非常具体的版本要求,否则维护会容易得多。
猜你喜欢
  • 2013-03-08
  • 2020-03-10
  • 2015-05-12
  • 1970-01-01
  • 2015-07-15
  • 2012-09-02
  • 2010-09-23
  • 2020-11-04
  • 2013-08-30
相关资源
最近更新 更多