Что не так с моим путем импорта и щелчком, чтобы открыть файл? - PullRequest
0 голосов
/ 25 апреля 2020

Я только что начал новую работу и, следовательно, новую настройку. Это не так уж и отличается, но по какой-то причине у меня есть 2 проблемы, связанные с тем, что показывает путь импорта, и щелчок по файлам / компонентам, чтобы открыть файл, не работает.

Может ли это быть из-за jsconfig file?:

    {
      "compilerOptions": {
        "checkJs": false,
        "target": "es2017",
        "allowSyntheticDefaultImports": true,
        "baseUrl": "./src",
        "paths": {
          "test-utils": ["../jest.config.js"]
        }
      },
      "exclude": ["node_modules", "build"]
    }

ВЫПУСК 1

  • Мои пути импорта иногда показывают относительный путь, иногда нет. Пример Provider правильно импортирует из node_modules, но Checkbox не делает:
    import React from 'react';
    import { Provider } from 'react-redux'; // YES
    import { Checkbox } from '../../../node_modules/antd/lib/index'; // NO

    export default function test() {
      return (
        <Provider>
          <Checkbox />
        </Provider>
      );
    }

Итак, в VSCode я проверил свои настройки JavaScript ›Предпочтения: Импорт Спецификатор модуля . В настоящее время установлено значение auto. Если я изменю его на relative, никаких изменений не будет видно. Если я изменю его на non-relative, импорт флажка изменится на:

import { Checkbox } from '../node_modules/antd/lib/index';, но это все равно не то, что я ожидал бы при импорте node_module.

Если я удалю JSConfig, тогда поведение import {Checkbox} выглядит корректно. Однако я, видимо, единственный, кто столкнулся с этой проблемой в моей команде.

ВЫПУСК 2

  • Иногда нажимая на компонент, чтобы открыть файл, нажимая Command key (⌘) + Click не открывает файл, иногда открывает.
    import StatusKey from '../../components/StatusKey'; // (⌘) + Click does not work
    import { columns } from './tableColumns';  // (⌘) + Click works

GIF: http://recordit.co/GKZfRa7emo

Однако, если я изменю импорт StatusKey на import StatusKey from 'components/StatusKey/index'; тогда это работает.

Если я удаляю JSConfig, то нажатие на клавишу статуса работает с оригинальным импортом.


Я ценю понимание

1 Ответ

0 голосов
/ 27 апреля 2020

jsconfig должен иметь "module": "commonjs", как часть параметров компилятора

...