bolt
bolt copied to clipboard
Bolt install production
Bolt is not installing --production
only packages.
Title | Description |
---|---|
Version | 0.24.5 |
Type | Request |
node | 14.11.0 |
Operating System | macOS |
Short Description | It should run yarn install --production but instead all packages being installed (including devDependencies). |
Run this and then bolt
. It'll do what you expect, but be warned: It will modify your package.json files.
import {getPackages} from '@manypkg/get-packages'
import {writeFile} from 'fs/promises'
import path from 'path'
// remove-dev-deps.js - Removes dev dependencies from a bolt monorepo
const {
packages,
rootPackage: {packageJson: rootPackageJson}
} = await getPackages(process.cwd())
// Get all dependencies used by sub-packages.
const usedPackages = new Set(
packages
.reduce(
(acc, {packageJson: {dependencies = {}}}) => [
...acc,
...Object.keys(dependencies)
],
[]
)
.sort()
)
// Remove packages from the root package.json that aren't any sub-packages' dependencies
rootPackageJson.dependencies = Object.fromEntries(
Object
.entries(rootPackageJson.dependencies)
.filter(([name]) => usedPackages.has(name))
)
await writeFile(
'package.json',
JSON.stringify(rootPackageJson, null, 2) + '\n'
)
// Remove devDependencies from all sub-packages' package.json
await Promise.all(
packages.map(({
relativeDir,
packageJson: {
devDependencies,
...packageJson
}
}) => writeFile(
path.join(relativeDir, 'package.json'),
JSON.stringify(packageJson, null, 2) + '\n'
))
)