Импорт модуля реакции из / src, а не node_modules - PullRequest
0 голосов
/ 17 октября 2019

В моем проекте я использовал модуль реагировать на rc-дерево, импортировав его так:

import Tree, { TreeNode } from 'rc-tree';

Это сработало нормально. Однако через некоторое время я захотел внести изменения в исходный код rc-tree, поэтому я клонировал исходный код из github в мой каталог ./src. т.е. у меня теперь есть каталог с именем ./tree в моем каталоге ./src. Как мне вызвать этот код, а не rc-дерево в node_modules?

Я пробовал различные операторы импорта, но ничего не работает.

Ответы [ 3 ]

1 голос
/ 17 октября 2019

Вы должны попытаться относительно импортировать ваш код. Подумайте, если вы находитесь на этом пути src/component/childComponent/, куда вы импортируете свой пакет желаний, и здесь вы должны использовать относительный путь к пакету, который находится внутри src.

import Tree, { TreeNode } from '../../tree';

, этот .. означает, что выидите назад в вашем текущем пути. В этом примере это означает перейти на два каталога (component и childComponent). здесь, сейчас вы обращаетесь к каталогу src, вам следует написать остальную часть вашего пути, которая является /tree.

Я посмотрел на пакет rc-tree и заметил, что он был написан машинописным шрифтом. Если ваше приложение не поддерживает машинописный ввод, вы не можете использовать исходный код пакета, и вам следует сначала создать пакет, а затем импортировать каталог build.

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

import Tree, { TreeNode } from 'src/tree';
1 голос
/ 17 октября 2019

Добавьте .env файл в корень и добавьте эту строку

NODE_PATH=src

Теперь импортируйте

import Tree, { TreeNode } from 'tree';
0 голосов
/ 18 октября 2019

Я не смог заставить эти предложения работать, вероятно, по моей вине ... поэтому я просто переместил весь подкаталог rc-tree из node_modules в мое дерево исходников и назвал его "tree". Затем я сделал sym-ссылку из node_modules / rc-tree на ./tree в моем исходном дереве.

Я просто импортирую Tree, TreeNodes и т. Д., Как я использую модуль, но на самом деле он вызывает копиюкода в ./tree.

Кажется, все работает. Единственное, что не так хорошо, это то, что, поскольку код теперь находится под ./src, линтер печатает много предупреждений о коде. Очевидно, это не мой код, и я бы предпочел не слышать об этом, но я могу жить с этим.

...