将开发 NPM 依赖项加入到单个元包中
Joining development NPM dependencies into single meta-package
有没有办法创建元包,package.json
:
a)包含一个依赖列表,不用于构建这个
包;
b) 强制 NPM 安装这些 dep,当这非常
meta-package被添加到项目中,既用于生产又用于开发?
问题是我的样板中有几十个包(prod 和 dev),我从一个项目复制到另一个项目。我想要一个私有包,一旦添加到项目的 package.json
中,它就会告诉 npm 要安装哪个其他产品和开发部门。我想改进使用样板的过程,因为当我改变它时,我有(实际上这是我的意愿,而不是强制执行)在基于这个样板构建的所有项目中进行这些更改,并且是仍在开发中。
我已经设法将我通常使用的所有依赖添加到元包 package.json
的 production
部分。但是这种方法有两个问题:
1. 构建元包时安装了很多不必要的包(我必须构建它,因为它在 ES6/7 中包含一些帮助程序);
2. 我仍然需要 copy/paste 生产部门列表到每个新项目中以提供 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
样板并从单点更新您的开发人员列表。
唯一的缺点是当您使用来自 git
的包时,npm
不会捕获版本更改,因此要更新应用程序中的包,您必须从 [=] 中删除元包目录25=] 和 re运行 npm install
。要解决此问题,您可以将包发布到 npmjs.com(如果您是付费 npm 客户,最好将其发布为私有包)并在每次更新时更改元包版本。
这是样板和元包示例:
有没有办法创建元包,package.json
:
a)包含一个依赖列表,不用于构建这个 包;
b) 强制 NPM 安装这些 dep,当这非常 meta-package被添加到项目中,既用于生产又用于开发?
问题是我的样板中有几十个包(prod 和 dev),我从一个项目复制到另一个项目。我想要一个私有包,一旦添加到项目的 package.json
中,它就会告诉 npm 要安装哪个其他产品和开发部门。我想改进使用样板的过程,因为当我改变它时,我有(实际上这是我的意愿,而不是强制执行)在基于这个样板构建的所有项目中进行这些更改,并且是仍在开发中。
我已经设法将我通常使用的所有依赖添加到元包 package.json
的 production
部分。但是这种方法有两个问题:
1. 构建元包时安装了很多不必要的包(我必须构建它,因为它在 ES6/7 中包含一些帮助程序);
2. 我仍然需要 copy/paste 生产部门列表到每个新项目中以提供 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
样板并从单点更新您的开发人员列表。
唯一的缺点是当您使用来自 git
的包时,npm
不会捕获版本更改,因此要更新应用程序中的包,您必须从 [=] 中删除元包目录25=] 和 re运行 npm install
。要解决此问题,您可以将包发布到 npmjs.com(如果您是付费 npm 客户,最好将其发布为私有包)并在每次更新时更改元包版本。
这是样板和元包示例: