处理 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"
或类似的东西。这样父级就可以控制特定版本,而您的组件会从父级获取实际版本。
我正在尝试将主应用程序中的几个 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"
或类似的东西。这样父级就可以控制特定版本,而您的组件会从父级获取实际版本。