javascript - 将库包合并为单个节点包

标签 javascript reactjs npm

我在几个项目中一次又一次地使用几个库,我想在项目中强制执行特定版本。

项目 1

{
  "name": "project_1",
  "version": "0.1.0",
  "dependencies": {
    "react": "^16.3.2",
    "react-dom": "^16.3.2",
    "react-router": "^4.2.0",
    "react-router-dom": "^4.2.2"
  }
}

项目 2

{
  "name": "project_2",
  "version": "0.1.0",
  "dependencies": {
    "react": "^16.3.2",
    "react-dom": "^16.3.2",
    "react-router": "^4.2.0",
    "react-router-dom": "^4.2.2"
  }
}

对于任何项目,我都希望将所有包放在 reactreact-domreact-routerreact 之上-route-dom 到单个节点包 (all-libs),如下所示。通过这种方式,我可以卡住所有项目中的版本。

任何项目

{
  "name": "project_1",
  "version": "0.1.0",
  "dependencies": {
    "all-libs": "0.0.1"
  }
}

采用这种方法的原因:

  1. 集中版本升级以避免版本兼容性问题。

我的问题是如何创建这个包(all-libs)?

最佳答案

您可以托管自己的 npm 包,将这些包作为依赖项。你可以设置一个自己的 nexus 服务器来托管你的包,或者你可以把它放在 npmjs 上。

将此行添加到您的 package.json 中:

"name": "all-libs",
"version": "0.0.1",
"description": "My Libs for every project",
"author": "Me",
"license": "MIT",
"engines": {
    "node": ">=8.9.3"
},
"publishConfig": {
    "registry": "http://myRegistry.com"
},
"devDependencies": {},
"dependencies": {
    "react": "^16.3.2",
    "react-dom": "^16.3.2",
    "react-router": "^4.2.0",
    "react-router-dom": "^4.2.2"
}

然后您可以像这样通过 NPM 发布它:npm publish

有关更多信息,请参阅有关发布包的文档:https://docs.npmjs.com/cli/publish

关于javascript - 将库包合并为单个节点包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50150352/

相关文章:

javascript - 在 jquery 中使用单击时无法更改 css

javascript - 从超链接将表单对象传递给 javascript 时出现问题

javascript - React 中使用 Dotenv 和 Webpack 的 env-vars

javascript - 更改一个变量会更改以相同方式定义的所有其他变量

JavaScript fetch() - 将 ReadableStreams 数组映射到数组

javascript - 如何处理请求并避免代码重复?

javascript - 为什么子组件没有渲染?

javascript - 部署heroku问题

angular - 如何使用 CLI 创建特定版本的 Angular 项目?

node.js - nodemon 过滤样式文件更改