mirror of
https://github.com/pnpm/pnpm.git
synced 2026-05-06 23:19:19 -04:00
fix: don't normalize package.json
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
import { WANTED_LOCKFILE } from '@pnpm/constants'
|
||||
import { fromDir as readPackageJsonFromDir } from '@pnpm/read-package-json'
|
||||
import loadJsonFile from 'load-json-file'
|
||||
import path = require('path')
|
||||
import rimraf = require('rimraf-then')
|
||||
import { install } from 'supi'
|
||||
import createStoreController from '../createStoreController'
|
||||
import { readImporterManifestFromDir } from '../readImporterManifest'
|
||||
import { PnpmOptions } from '../types'
|
||||
|
||||
export default async function installCmd (
|
||||
@@ -26,7 +26,7 @@ export default async function installCmd (
|
||||
store: store.path,
|
||||
storeController: store.ctrl,
|
||||
}
|
||||
await install(await readPackageJsonFromDir(opts.prefix), installOpts)
|
||||
await install(await readImporterManifestFromDir(opts.prefix), installOpts)
|
||||
}
|
||||
|
||||
async function readNpmLockfile (prefix: string) {
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
import { fromDir as readPackageJsonFromDir } from '@pnpm/read-package-json'
|
||||
import {
|
||||
getSaveType,
|
||||
safeReadPackageFromDir,
|
||||
} from '@pnpm/utils'
|
||||
import { getSaveType } from '@pnpm/utils'
|
||||
import {
|
||||
install,
|
||||
mutateModules,
|
||||
@@ -12,6 +8,7 @@ import writePkg = require('write-pkg')
|
||||
import createStoreController from '../createStoreController'
|
||||
import findWorkspacePackages, { arrayOfLocalPackagesToMap } from '../findWorkspacePackages'
|
||||
import getPinnedVersion from '../getPinnedVersion'
|
||||
import { readImporterManifestFromDir, safeReadImporterManifestFromDir } from '../readImporterManifest'
|
||||
import requireHooks from '../requireHooks'
|
||||
import { PnpmOptions } from '../types'
|
||||
import updateToLatestSpecsFromManifest, { createLatestSpecs } from '../updateToLatestSpecsFromManifest'
|
||||
@@ -57,7 +54,7 @@ export default async function installCmd (
|
||||
storeController: store.ctrl,
|
||||
}
|
||||
|
||||
let manifest = await safeReadPackageFromDir(opts.prefix)
|
||||
let manifest = await safeReadImporterManifestFromDir(opts.prefix)
|
||||
if (manifest === null) {
|
||||
if (opts.update) {
|
||||
const err = new Error('No package.json found')
|
||||
@@ -115,7 +112,7 @@ export default async function installCmd (
|
||||
[
|
||||
{
|
||||
buildIndex: 0,
|
||||
manifest: await readPackageJsonFromDir(opts.prefix),
|
||||
manifest: await readImporterManifestFromDir(opts.prefix),
|
||||
prefix: opts.prefix,
|
||||
},
|
||||
], {
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { StoreController } from '@pnpm/package-store'
|
||||
import { fromDir as readPackageJsonFromDir } from '@pnpm/read-package-json'
|
||||
import { safeReadPackageFromDir } from '@pnpm/utils'
|
||||
import pLimit = require('p-limit')
|
||||
import path = require('path')
|
||||
@@ -15,6 +14,7 @@ import {
|
||||
import { cached as createStoreController } from '../createStoreController'
|
||||
import findWorkspacePackages, { arrayOfLocalPackagesToMap } from '../findWorkspacePackages'
|
||||
import getConfigs from '../getConfigs'
|
||||
import { readImporterManifestFromDir } from '../readImporterManifest'
|
||||
import { PnpmOptions } from '../types'
|
||||
|
||||
const installLimit = pLimit(4)
|
||||
@@ -77,7 +77,7 @@ export default async (
|
||||
pkgPaths.map((prefix) => installLimit(async () => {
|
||||
const s = await createStoreController(storeControllerCache, opts)
|
||||
await install(
|
||||
await readPackageJsonFromDir(prefix), {
|
||||
await readImporterManifestFromDir(prefix), {
|
||||
...await getConfigs(
|
||||
{ ...opts.cliArgs, prefix },
|
||||
{
|
||||
@@ -94,7 +94,7 @@ export default async (
|
||||
)
|
||||
await link(pkgPaths, path.join(cwd, 'node_modules'), {
|
||||
...linkOpts,
|
||||
manifest: await readPackageJsonFromDir(cwd),
|
||||
manifest: await readImporterManifestFromDir(cwd),
|
||||
})
|
||||
|
||||
await Promise.all(
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { fromDir as readPackageJsonFromDir } from '@pnpm/read-package-json'
|
||||
import { InstallOptions, mutateModules } from 'supi'
|
||||
import createStoreController from '../createStoreController'
|
||||
import { readImporterManifestFromDir } from '../readImporterManifest'
|
||||
import { PnpmOptions } from '../types'
|
||||
|
||||
export default async (input: string[], opts: PnpmOptions) => {
|
||||
@@ -8,7 +8,7 @@ export default async (input: string[], opts: PnpmOptions) => {
|
||||
return mutateModules([
|
||||
{
|
||||
buildIndex: 0,
|
||||
manifest: await readPackageJsonFromDir(process.cwd()),
|
||||
manifest: await readImporterManifestFromDir(process.cwd()),
|
||||
mutation: 'install',
|
||||
prefix: process.cwd(),
|
||||
pruneDirectDependencies: true,
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { fromDir as readPackageJsonFromDir } from '@pnpm/read-package-json'
|
||||
import {
|
||||
rebuild,
|
||||
rebuildPkgs,
|
||||
} from 'supi'
|
||||
import createStoreController from '../createStoreController'
|
||||
import { readImporterManifestFromDir } from '../readImporterManifest'
|
||||
import { PnpmOptions } from '../types'
|
||||
|
||||
export default async function (
|
||||
@@ -22,7 +22,7 @@ export default async function (
|
||||
[
|
||||
{
|
||||
buildIndex: 0,
|
||||
manifest: await readPackageJsonFromDir(rebuildOpts.prefix),
|
||||
manifest: await readImporterManifestFromDir(rebuildOpts.prefix),
|
||||
prefix: rebuildOpts.prefix,
|
||||
},
|
||||
],
|
||||
@@ -32,7 +32,7 @@ export default async function (
|
||||
await rebuildPkgs(
|
||||
[
|
||||
{
|
||||
manifest: await readPackageJsonFromDir(rebuildOpts.prefix),
|
||||
manifest: await readImporterManifestFromDir(rebuildOpts.prefix),
|
||||
prefix: rebuildOpts.prefix,
|
||||
},
|
||||
],
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import logger from '@pnpm/logger'
|
||||
import { fromDir as readPackageJsonFromDir } from '@pnpm/read-package-json'
|
||||
import { DependencyManifest, ImporterManifest } from '@pnpm/types'
|
||||
import { getSaveType } from '@pnpm/utils'
|
||||
import camelcaseKeys = require('camelcase-keys')
|
||||
@@ -30,6 +29,7 @@ import getCommandFullName from '../../getCommandFullName'
|
||||
import getPinnedVersion from '../../getPinnedVersion'
|
||||
import { scopeLogger } from '../../loggers'
|
||||
import parsePackageSelector, { PackageSelector } from '../../parsePackageSelectors'
|
||||
import { readImporterManifestFromDir } from '../../readImporterManifest'
|
||||
import requireHooks from '../../requireHooks'
|
||||
import { PnpmOptions } from '../../types'
|
||||
import updateToLatestSpecsFromManifest, { createLatestSpecs } from '../../updateToLatestSpecsFromManifest'
|
||||
@@ -207,7 +207,7 @@ export async function recursive (
|
||||
prefixes.map(async (prefix) => {
|
||||
importers.push({
|
||||
buildIndex,
|
||||
manifest: await readPackageJsonFromDir(prefix),
|
||||
manifest: await readImporterManifestFromDir(prefix),
|
||||
prefix,
|
||||
})
|
||||
})
|
||||
@@ -232,7 +232,7 @@ export async function recursive (
|
||||
const mutation = cmdFullName === 'uninstall' ? 'uninstallSome' : (input.length === 0 && !updateToLatest ? 'install' : 'installSome')
|
||||
const mutatedImporters = await Promise.all<MutatedImporter>(importers.map(async ({ buildIndex, prefix }) => {
|
||||
const localConfigs = await memReadLocalConfigs(prefix)
|
||||
const manifest = await readPackageJsonFromDir(prefix)
|
||||
const manifest = await readImporterManifestFromDir(prefix)
|
||||
const shamefullyFlatten = typeof localConfigs.shamefullyFlatten === 'boolean'
|
||||
? localConfigs.shamefullyFlatten
|
||||
: opts.shamefullyFlatten
|
||||
@@ -302,7 +302,7 @@ export async function recursive (
|
||||
return
|
||||
}
|
||||
|
||||
const manifest = await readPackageJsonFromDir(prefix)
|
||||
const manifest = await readImporterManifestFromDir(prefix)
|
||||
let currentInput = [...input]
|
||||
if (updateToLatest) {
|
||||
if (!currentInput || !currentInput.length) {
|
||||
@@ -398,7 +398,7 @@ export async function recursive (
|
||||
[
|
||||
{
|
||||
buildIndex: 0,
|
||||
manifest: await readPackageJsonFromDir(prefix),
|
||||
manifest: await readImporterManifestFromDir(prefix),
|
||||
prefix,
|
||||
},
|
||||
],
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { fromDir as readPackageJsonFromDir } from '@pnpm/read-package-json'
|
||||
import {
|
||||
mutateModules,
|
||||
uninstall,
|
||||
@@ -6,6 +5,7 @@ import {
|
||||
import writePkg = require('write-pkg')
|
||||
import createStoreController from '../createStoreController'
|
||||
import findWorkspacePackages, { arrayOfLocalPackagesToMap } from '../findWorkspacePackages'
|
||||
import { readImporterManifestFromDir } from '../readImporterManifest'
|
||||
import { PnpmOptions } from '../types'
|
||||
|
||||
export default async function uninstallCmd (
|
||||
@@ -18,7 +18,7 @@ export default async function uninstallCmd (
|
||||
storeController: store.ctrl,
|
||||
})
|
||||
if (opts.lockfileDirectory === opts.prefix) {
|
||||
const manifest = await uninstall(await readPackageJsonFromDir(opts.prefix), input, uninstallOpts)
|
||||
const manifest = await uninstall(await readImporterManifestFromDir(opts.prefix), input, uninstallOpts)
|
||||
await writePkg(opts.prefix, manifest)
|
||||
return
|
||||
}
|
||||
@@ -30,7 +30,7 @@ export default async function uninstallCmd (
|
||||
{
|
||||
bin: opts.bin,
|
||||
dependencyNames: input,
|
||||
manifest: await readPackageJsonFromDir(opts.prefix),
|
||||
manifest: await readImporterManifestFromDir(opts.prefix),
|
||||
mutation: 'uninstallSome',
|
||||
prefix: opts.prefix,
|
||||
},
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { fromDir as readPackageJsonFromDir } from '@pnpm/read-package-json'
|
||||
import { mutateModules } from 'supi'
|
||||
import createStoreController from '../createStoreController'
|
||||
import { readImporterManifestFromDir } from '../readImporterManifest'
|
||||
import { PnpmOptions } from '../types'
|
||||
|
||||
export default async function (input: string[], opts: PnpmOptions) {
|
||||
@@ -14,7 +14,7 @@ export default async function (input: string[], opts: PnpmOptions) {
|
||||
return mutateModules([
|
||||
{
|
||||
dependencyNames: input,
|
||||
manifest: await readPackageJsonFromDir(opts.prefix),
|
||||
manifest: await readImporterManifestFromDir(opts.prefix),
|
||||
mutation: 'unlinkSome',
|
||||
prefix: opts.prefix,
|
||||
},
|
||||
@@ -22,7 +22,7 @@ export default async function (input: string[], opts: PnpmOptions) {
|
||||
}
|
||||
return mutateModules([
|
||||
{
|
||||
manifest: await readPackageJsonFromDir(opts.prefix),
|
||||
manifest: await readImporterManifestFromDir(opts.prefix),
|
||||
mutation: 'unlink',
|
||||
prefix: opts.prefix,
|
||||
},
|
||||
|
||||
24
packages/pnpm/src/readImporterManifest.ts
Normal file
24
packages/pnpm/src/readImporterManifest.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
import { ImporterManifest } from '@pnpm/types'
|
||||
import loadJsonFile from 'load-json-file'
|
||||
import path = require('path')
|
||||
|
||||
export async function readImporterManifest (filename: string) {
|
||||
return loadJsonFile<ImporterManifest>(filename)
|
||||
}
|
||||
|
||||
export async function readImporterManifestFromDir (dir: string) {
|
||||
return readImporterManifest(path.join(dir, 'package.json'))
|
||||
}
|
||||
|
||||
export async function safeReadImporterManifest (filename: string): Promise<ImporterManifest | null> {
|
||||
try {
|
||||
return await readImporterManifest(filename)
|
||||
} catch (err) {
|
||||
if (err['code'] !== 'ENOENT') throw err
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
export function safeReadImporterManifestFromDir (dir: string) {
|
||||
return safeReadImporterManifest(path.join(dir, 'package.json'))
|
||||
}
|
||||
Reference in New Issue
Block a user