有没有一种方法可以创建一个元数据包,它package.json
:
a)包含不用于构建此程序包的依赖项列表;
b)当此元数据包添加到项目中时,是否强制NPM安装这些部门,是否都用于开发?
问题是我的样板中有几十个软件包(prod和dev),我将它们从一个项目复制到另一个项目。我想拥有一个私有软件包,该私有软件包一旦添加到project的package.json
npm中,便可以安装其他产品和开发部门。我想改善使用样板的过程,因为当我对其进行更改时,我(实际上是我的意愿,而不是强制执行)在基于该样板的所有项目中进行这些更改,这些更改是仍在开发中。
我设法将我通常使用的所有部门添加到production
meta-package的部分package.json
。但是,此方法存在两个问题:
1.构建元软件包时,安装了许多不必要的软件包(我必须构建它,因为它包含ES6 / 7中的一些帮助程序);
2.我仍然必须将生产部门的列表复制/粘贴到每个新项目中,以提供NPM信息以及要在生产服务器上安装的内容。
也欢迎使用非npm解决方案。
好吧,这似乎很容易做到:
1.首先,需要将样板中使用的所有软件包分为两组-运行应用程序(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
样板文件,并从一点更新您的开发人员列表。
唯一的缺点是,npm
当您使用package from时,它不会捕获版本更改git
,因此要在应用程序中更新包,您必须从中删除meta-packages目录node_modules
并重新运行npm install
。要解决此问题,您可以将软件包发布到npmjs.com(如果您是npm的付费客户,最好将其发布为私有软件包),并在每次更新时更改元软件包的版本。
这是样板和元包示例:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句