For anyone who stuck after run lerna link
, patch-package
will not be executed at lerna bootstrap
- At root path (same location with
lerna.json
), editpackage.json
as below
// ...
"devDependencies": {
"@lerna/child-process": "^4.0.0",
"@lerna/project": "^4.0.0",
// ...
},
"scripts": {
"postinstall": "node bootstrap.js"
}
- Create
bootstrap.js
at root path
// bootstrap.js
const fs = require('fs')
const path = require('path')
const { getPackagesSync } = require('@lerna/project')
const { spawnStreaming } = require('@lerna/child-process')
const packages = getPackagesSync()
packages
.forEach(pkg => {
const patches = path.join(pkg.location, 'patches')
if (fs.existsSync(patches)) {
spawnStreaming('node', [require.resolve('patch-package'), '--patch-dir', path.relative(__dirname, patches)], { shell: true })
}
})