处理 npm 包依赖关系的最佳方式?

Best way to handle an npm packages dependencies?

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

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

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

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

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