From 39d4be62fe3a73ee9b09c37185d7d47fda37895b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D0=B8=D1=80=D0=B8=D0=BB=D0=BB=20=D0=92=D0=B5=D1=82?= =?UTF-8?q?=D1=80=D0=BE=D0=B2?= Date: Mon, 10 Aug 2026 09:18:32 +0300 Subject: [PATCH] fix(node): install git hooks as real directories --- pre_commit/languages/node.py | 5 ++++- tests/languages/node_test.py | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/pre_commit/languages/node.py b/pre_commit/languages/node.py index 304fdcdd8..f1c5eb8ff 100644 --- a/pre_commit/languages/node.py +++ b/pre_commit/languages/node.py @@ -99,5 +99,8 @@ def install_environment( cmd_output_b(*cmd) with in_env(prefix, version): - install = ('npm', 'install', '--allow-git=root', '-g', *pkgs) + install = ( + 'npm', 'install', '--allow-git=root', '--install-links=true', + '-g', *pkgs, + ) lang_base.setup_cmd(prefix, install) diff --git a/tests/languages/node_test.py b/tests/languages/node_test.py index 0fb84a916..65036e570 100644 --- a/tests/languages/node_test.py +++ b/tests/languages/node_test.py @@ -103,12 +103,16 @@ def test_installs_without_links_outside_env(tmpdir): '#!/usr/bin/env node\n' '_ = require("lodash"); console.log("success!")\n', ) + tmpdir.join('packages/bar/package.json').ensure().write( + json.dumps({'name': 'bar', 'version': '0.0.1'}), + ) tmpdir.join('package.json').write( json.dumps({ 'name': 'foo', 'version': '0.0.1', 'bin': {'foo': './bin/main.js'}, 'dependencies': {'lodash': '*'}, + 'workspaces': ['packages/*'], }), ) _make_repo(str(tmpdir))