繁体   English   中英

将开发NPM依赖关系加入到单个元包中

[英]Joining development NPM dependencies into single meta-package

有没有办法创建一个meta-package, package.json

a)包含一个依赖项列表,这些依赖项不用于构建此包;

b)强制NPM安装这些deps,当这个非常多的元数据包添加到项目中时,都用于开发的生产?

问题是我的样板中有几十个包(prod和dev),我从一个项目复制到另一个项目。 我想有一个私有包,它曾经添加到项目的package.json告诉npm其他prod和dev deps要安装。 我想改进使用样板的过程,因为当我改变它的时候,我(实际上是我的意愿,而不是执行)在这个样板的基础上构建的所有项目中进行这些更改,还在开发中。

我已经设法将我经常使用的所有deps添加到我的meta-package的package.json production部分。 但是这种方法存在两个问题:

1.构建元数据包时会安装很多不必要的软件包(我必须构建它,因为它包含ES6 / 7中的一些帮助程序);

2.我仍然需要将生产代码列表复制/粘贴到每个新项目中,以提供NPM信息,在生产服务器上安装什么。

非npm解决方案也是受欢迎的。

好吧,它似乎很容易做到:

1.首先,需要将样板中使用的所有包分成两组 - 运行app( production )所需的,以及构建和调试( development )所需的。

2.创建production元包( meta-prod )。 package.json内容:

...
"dependencies": {
    < Here we have the list of production dependencies.       >
},
...

如有必要,编译它并推送到git(即github)。

3.创建development元包( meta-dev )。 package.json内容:

...
"dependencies": {
    < Here we have the list of development dependencies.       >
    < Please note, that this is in the 'dependencies' section, >
    < not the 'devDependencies'.                               >
},
...

把它推到git。

4.从样板的package.json删除所有依赖项,并将其替换为:

...
"dependencies": {
    "meta-prod": "git+https://github.com/your_account/meta-prod"
},
"devDependencies": {
    "meta-dev": "git+https://github.com/your_account/meta-dev"
},
...

而已! 依赖关系进行安装时,你npm install ,将被适当考虑npm生产和发展。 现在您可以使用更小的package.json样板并从单点更新您的开发人员列表。

唯一的缺点是,当您使用git包时, npm不会捕获版本更改,因此要更新应用程序中的包,您必须从node_modules删除元包目录并重新运行npm install 要解决此问题,您可以将您的软件包发布到npmjs.com(如果您是付费的npm客户,最好将其发布为私有软件包),并在每次更新时更改元软件包版本。

这是样板和元包示例:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM