node.js – 如何为多个npm存储库创建共享package.json

前端之家收集整理的这篇文章主要介绍了node.js – 如何为多个npm存储库创建共享package.json前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用分离的微服务构建我的应用程序,每个服务都有自己的存储库和npm依赖项,可能在不同的服务器上.

我正在寻找一种方法将所有依赖项放在一个可以通过url访问的全局package.json文件中,
所以这样,我可以更新共享依赖版本,而无需运行所有不同的微服务,并逐个更新它们.

可能吗?

解决方法

不幸的是,npm不支持指定父package.json文件.这个功能proposed some time ago,但是npm维护者得出的结论是它应该通过外部工具实现.

当然你可以自己编写这样的工具.有一个可能的aporaches:

>创建包含所有共享依赖项的package.json文件的库.在此示例中,它将被称为shared-deps.
>创建merge.js脚本,该脚本将共享依赖项添加到本地package.json文件,并将其添加到shared-deps库:

const fs = require('fs')

const localPackageJson = require('../../package.json')
const sharedPackageJson = require('./package.json')

Object.assign(localPackageJson.dependencies,sharedPackageJson.dependencies)

fs.writeFileSync('../../package.json',JSON.stringify(localPackageJson,null,2))

>添加到app的package.json,它将在安装后挂钩时使用此共享依赖项:

"scripts": {
   "postinstall": "node ./node_modules/a/merge.js"
}

>现在,当您运行npm install时,您的共享依赖项将与shared-deps库一起安装,之后将更新您的package.json.

猜你在找的Node.js相关文章