在包含多个包的 repo 中,每个包的版本应该代表什么?
In a repo containing multiple packages, what should the version of each represent?
我正在开发一个 Web 应用程序,React client
应用程序和 Node Express server
API 位于同一个存储库中,但具有单独的 package.json
文件。结构如下:
root
-client/
--src/
--package.json // manages create-react-app dependencies, scripts
-controllers/
-models/
-routes/
-app.js
-package.json // manages node express server dependencies, scripts
从表面上看,这些单独的包是系统(即 Web 应用程序)的子模块。例如,考虑路由的处理方式,其中服务器无法识别的任何请求都由 client
路由器处理:
// app.js
require('./routes/...')(app) // api routes defined first
if (process.env.NODE_ENV === 'production') {
app.use(express.static('client/build'))
const path = require('path')
app.get('*', (req, res) => { // non match fall through to client
res.sendFile(path.resolve(__dirname, 'client', 'build', 'index.html'))
})
}
服务器 API 没有启用 cors。
这些 package.json
文件应该共享相同的版本,还是单独版本化?
每个包都应该单独进行版本控制。将它们绑定到相同的版本号意味着一个简单的错误修复,另一个需要无意义的版本升级。不要对您的客户撒谎!包版本号适用于它的内容,并且只适用于它的内容。即使是一个包的包也应该有自己的版本序列。
您也可以选择只运送一个包裹。
我正在开发一个 Web 应用程序,React client
应用程序和 Node Express server
API 位于同一个存储库中,但具有单独的 package.json
文件。结构如下:
root
-client/
--src/
--package.json // manages create-react-app dependencies, scripts
-controllers/
-models/
-routes/
-app.js
-package.json // manages node express server dependencies, scripts
从表面上看,这些单独的包是系统(即 Web 应用程序)的子模块。例如,考虑路由的处理方式,其中服务器无法识别的任何请求都由 client
路由器处理:
// app.js
require('./routes/...')(app) // api routes defined first
if (process.env.NODE_ENV === 'production') {
app.use(express.static('client/build'))
const path = require('path')
app.get('*', (req, res) => { // non match fall through to client
res.sendFile(path.resolve(__dirname, 'client', 'build', 'index.html'))
})
}
服务器 API 没有启用 cors。
这些 package.json
文件应该共享相同的版本,还是单独版本化?
每个包都应该单独进行版本控制。将它们绑定到相同的版本号意味着一个简单的错误修复,另一个需要无意义的版本升级。不要对您的客户撒谎!包版本号适用于它的内容,并且只适用于它的内容。即使是一个包的包也应该有自己的版本序列。
您也可以选择只运送一个包裹。