Skip to content

Commit 12be0e3

Browse files
minor #765 Don't warn about npm/yarn unless there is a ux-package in vendor/ (nicolas-grekas)
This PR was merged into the 1.12-dev branch. Discussion ---------- Don't warn about npm/yarn unless there is a ux-package in vendor/ A lighter version of #737 Commits ------- 9b26932 Don't warn about npm/yarn unless there is a ux-package in vendor/
2 parents 4961515 + 9b26932 commit 12be0e3

File tree

2 files changed

+19
-9
lines changed

2 files changed

+19
-9
lines changed

src/Flex.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -591,9 +591,11 @@ private function synchronizePackageJson(?string $rootDir)
591591
if ($synchronizer->shouldSynchronize()) {
592592
$packagesNames = array_column($this->composer->getLocker()->getLockData()['packages'] ?? [], 'name');
593593

594-
$this->io->writeError('<info>Synchronizing package.json with PHP packages</>');
595-
$synchronizer->synchronize($packagesNames);
596-
$this->io->writeError('Don\'t forget to run <comment>npm install --force</> or <comment>yarn install --force</> to refresh your JavaScript dependencies!');
594+
if ($synchronizer->synchronize($packagesNames)) {
595+
$this->io->writeError('<info>Synchronizing package.json with PHP packages</>');
596+
$this->io->writeError('<warning>Don\'t forget to run npm install --force or yarn install --force to refresh your JavaScript dependencies!</>');
597+
$this->io->writeError('');
598+
}
597599
}
598600
}
599601

src/PackageJsonSynchronizer.php

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,21 +32,24 @@ public function shouldSynchronize(): bool
3232
return $this->rootDir && file_exists($this->rootDir.'/package.json');
3333
}
3434

35-
public function synchronize(array $packagesNames)
35+
public function synchronize(array $packagesNames): bool
3636
{
3737
// Remove all links and add again only the existing packages
38-
$this->removePackageJsonLinks((new JsonFile($this->rootDir.'/package.json'))->read());
38+
$didAddLink = $this->removePackageJsonLinks((new JsonFile($this->rootDir.'/package.json'))->read());
3939

4040
foreach ($packagesNames as $packageName) {
41-
$this->addPackageJsonLink($packageName);
41+
$didAddLink = $this->addPackageJsonLink($packageName) || $didAddLink;
4242
}
4343

4444
// Register controllers and entrypoints in controllers.json
4545
$this->registerWebpackResources($packagesNames);
46+
47+
return $didAddLink;
4648
}
4749

48-
private function removePackageJsonLinks(array $packageJson)
50+
private function removePackageJsonLinks(array $packageJson): bool
4951
{
52+
$didRemoveLink = false;
5053
$jsDependencies = $packageJson['dependencies'] ?? [];
5154
$jsDevDependencies = $packageJson['devDependencies'] ?? [];
5255

@@ -59,14 +62,17 @@ private function removePackageJsonLinks(array $packageJson)
5962
$manipulator = new JsonManipulator(file_get_contents($this->rootDir.'/package.json'));
6063
$manipulator->removeSubNode('devDependencies', $name);
6164
file_put_contents($this->rootDir.'/package.json', $manipulator->getContents());
65+
$didRemoveLink = true;
6266
}
6367
}
68+
69+
return $didRemoveLink;
6470
}
6571

66-
private function addPackageJsonLink(string $phpPackage)
72+
private function addPackageJsonLink(string $phpPackage): bool
6773
{
6874
if (!$assetsDir = $this->resolveAssetsDir($phpPackage)) {
69-
return;
75+
return false;
7076
}
7177

7278
$manipulator = new JsonManipulator(file_get_contents($this->rootDir.'/package.json'));
@@ -79,6 +85,8 @@ private function addPackageJsonLink(string $phpPackage)
7985
$manipulator->addMainKey('devDependencies', $devDependencies);
8086

8187
file_put_contents($this->rootDir.'/package.json', $manipulator->getContents());
88+
89+
return true;
8290
}
8391

8492
private function registerWebpackResources(array $phpPackages)

0 commit comments

Comments
 (0)