如何将两个 npm 包合并为一个
How to merge two npm packages as one
我创建了一个新的 npm 包。假设我的新包名称是 my-package。我需要将 bootstrap npm 包导入到我的包中。如何将 Bootstrap 包导入到我的包中?我还需要更改 bootstrap 包中的一些颜色变量以匹配我的包。当我执行 npm install my-package
时,它应该将 my-package 和 bootstarp 包安装为一个包。我不想单独安装 my-package 和 bootstrap 包,而是将这两个包安装或合并为 my-package。任何建议和感谢。
这个问题听起来像是根源于 dependencies and peerDependencies.
之间的差异
在 my-package
包的 package.json
中,您可以将 bootstrap
定义为 dependency
或 peerDependency
。
如果 bootstrap
作为 peerDependency
包含在内,那么使用您的软件包的任何人都需要安装 bootstrap。这将导致他们的包树看起来像这样:
➜ consumer npm ls
consumer@1.0.0 /private/tmp/consumer
├── bootstrap@4.5.2
├── jquery@3.5.1
├── my-package@^1.0.0
└── popper.js@1.16.1
请注意,消费项目不仅需要 my-package
依赖,还需要 bootstrap 和所有 bootstrap 对等依赖。
为了完成您想要的,my-package
库的 package.json
应该将它们作为自己的依赖项包含在内。例如
{
"name": "my-package",
"dependencies": {
"bootstrap": "^4.5.2",
"jquery": "^3.5.1",
"popper.js": "^1.16.1"
}
...
}
通过这样做,任何使用 my-package
的项目将只能指定 my-package
作为依赖项,并且所有嵌套的依赖项也将被抓取。这是上面的依赖关系树的样子:
➜ consumer npm ls
consumer@1.0.0 /private/tmp/consumer
└─┬ my-package@1.0.0 -> /private/tmp/my-package
├── bootstrap@4.5.2
├── jquery@3.5.1
└── popper.js@1.16.1
至于更改用于 bootstrap 的颜色,您可以按照所用版本的主题文档来完成此操作:https://getbootstrap.com/docs/4.5/getting-started/theming/
我创建了一个新的 npm 包。假设我的新包名称是 my-package。我需要将 bootstrap npm 包导入到我的包中。如何将 Bootstrap 包导入到我的包中?我还需要更改 bootstrap 包中的一些颜色变量以匹配我的包。当我执行 npm install my-package
时,它应该将 my-package 和 bootstarp 包安装为一个包。我不想单独安装 my-package 和 bootstrap 包,而是将这两个包安装或合并为 my-package。任何建议和感谢。
这个问题听起来像是根源于 dependencies and peerDependencies.
之间的差异在 my-package
包的 package.json
中,您可以将 bootstrap
定义为 dependency
或 peerDependency
。
如果 bootstrap
作为 peerDependency
包含在内,那么使用您的软件包的任何人都需要安装 bootstrap。这将导致他们的包树看起来像这样:
➜ consumer npm ls
consumer@1.0.0 /private/tmp/consumer
├── bootstrap@4.5.2
├── jquery@3.5.1
├── my-package@^1.0.0
└── popper.js@1.16.1
请注意,消费项目不仅需要 my-package
依赖,还需要 bootstrap 和所有 bootstrap 对等依赖。
为了完成您想要的,my-package
库的 package.json
应该将它们作为自己的依赖项包含在内。例如
{
"name": "my-package",
"dependencies": {
"bootstrap": "^4.5.2",
"jquery": "^3.5.1",
"popper.js": "^1.16.1"
}
...
}
通过这样做,任何使用 my-package
的项目将只能指定 my-package
作为依赖项,并且所有嵌套的依赖项也将被抓取。这是上面的依赖关系树的样子:
➜ consumer npm ls
consumer@1.0.0 /private/tmp/consumer
└─┬ my-package@1.0.0 -> /private/tmp/my-package
├── bootstrap@4.5.2
├── jquery@3.5.1
└── popper.js@1.16.1
至于更改用于 bootstrap 的颜色,您可以按照所用版本的主题文档来完成此操作:https://getbootstrap.com/docs/4.5/getting-started/theming/