microsoft / microsoft/TypeScript
tsc fails when node_modules is symlinked to a target folder not named node_modules
Personne n'a encore pris cette issue.
- Langage dominant
- Go
- Étoiles
- 111k
- Forks
- 14.3k
- Merge moyen
- 2 j 4 h
- PR mergées (30 j)
- 132
Description
TypeScript Version: typescript@3.3.0-dev.20190119
Search Terms: symlink node_modules symbolic link
Code
Consider a project with the following file.
import { Command, flags } from "@oclif/command";
...
In addition the node_modules folder is symlinked to an external folder named ../<path>/node_modules_cli/.
Expected behavior:
The compile to work correctly.
Actual behavior:
$ yarn tsc
yarn run v1.12.3
$ /nu/skainswo/nuvemfs/nuvemfs-cli/node_modules/.bin/tsc
../../../.links/skainswo/node_modules_cli/@oclif/command/lib/command.d.ts:1:25 - error TS2307: Cannot find module '@oclif/config'.
1 import * as Config from '@oclif/config';
~~~~~~~~~~~~~~~
../../../.links/skainswo/node_modules_cli/@oclif/command/lib/command.d.ts:2:25 - error TS2307: Cannot find module '@oclif/parser'.
2 import * as Parser from '@oclif/parser';
~~~~~~~~~~~~~~~
../../../.links/skainswo/node_modules_cli/@oclif/command/lib/flags.d.ts:1:25 - error TS2307: Cannot find module '@oclif/config'.
1 import { IConfig } from '@oclif/config';
~~~~~~~~~~~~~~~
../../../.links/skainswo/node_modules_cli/@oclif/command/lib/flags.d.ts:2:25 - error TS2307: Cannot find module '@oclif/parser'.
2 import * as Parser from '@oclif/parser';
~~~~~~~~~~~~~~~
../../../.links/skainswo/node_modules_cli/@oclif/command/lib/flags.d.ts:47:34 - error TS2307: Cannot find module '@oclif/parser/lib/flags'.
47 export { boolean, integer } from '@oclif/parser/lib/flags';
~~~~~~~~~~~~~~~~~~~~~~~~~
../../../.links/skainswo/node_modules_cli/@oclif/command/lib/main.d.ts:1:25 - error TS2307: Cannot find module '@oclif/config'.
1 import * as Config from '@oclif/config';
~~~~~~~~~~~~~~~
../../../.links/skainswo/node_modules_cli/@types/request/index.d.ts:19:27 - error TS2307: Cannot find module 'caseless'.
19 import caseless = require('caseless');
~~~~~~~~~~
../../../.links/skainswo/node_modules_cli/@types/request/index.d.ts:24:27 - error TS2307: Cannot find module 'form-data'.
24 import FormData = require('form-data');
~~~~~~~~~~~
../../../.links/skainswo/node_modules_cli/@types/request/index.d.ts:26:24 - error TS2307: Cannot find module 'tough-cookie'.
26 import tough = require('tough-cookie');
~~~~~~~~~~~~~~
Found 9 errors.
error Command failed with exit code 2.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
Which makes no sense since the node_modules directory does in fact contain all of the necessary modules.
Moving the destination folder from ../<path>/node_modules_cli/ to ../<path>/node_modules/ fixes everything, and the compile goes through just fine:
$ yarn tsc
yarn run v1.12.3
$ /nu/skainswo/nuvemfs/nuvemfs-cli/node_modules/.bin/tsc
✨ Done in 5.54s.
I've tested and confirmed this behavior with both relative and absolute symbolic links.
Playground Link: n/a
Related Issues:
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Reproduisez l’échec avec TypeScript 3.3.0-dev.20190119, Yarn et un lien symbolique node_modules ciblant un dossier nommé node_modules_cli plutôt que node_modules. Commencez par suivre la résolution des modules pour les imports dans @oclif/command/lib/*.d.ts ; le travail est terminé lorsque la compilation réussit aussi bien pour les liens symboliques relatifs qu’absolus, sans erreurs TS2307.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- node.js, typescript
- Domaine
- compilers
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100