Если `redux` отсутствует в package. json или package-lock. json или node_modules, почему импорт чего-либо из 'redux' все еще работает? - PullRequest
1 голос
/ 15 марта 2020

У меня есть строка в моем проекте:

import { createStore } from 'redux';

, но package.json не имеет redux (только react-redux). И то же самое верно для package-lock.json и папки node_modules.

. Далее, она не устанавливается глобально, поскольку, если я сделаю

npm list -g redux

, она покажет, что она не установлена:

/usr/local/lib
└── (empty)

Так почему же мы можем импортировать вещи из redux?

PS Я дважды проверил http://localhost: 3000 / static / js / 0.chunk. js и он перечислил redux как "../../../node_modules/redux/..." и react-redux как "./node_modules/react-redux/... Так что я дважды проверяю 2 уровня моего проекта, и внутри моего домашнего каталога есть node_modules папка ... так что, похоже, она может "go up" искать node_modules? Неужели это так опасно? Но, с другой стороны, может ли это быть полезным, если мы хотим разработать несколько экспериментальных приложений React, не повторяя одинаковые node_modules с каждым размером около 200 МБ?

1 Ответ

0 голосов
/ 15 марта 2020

Поскольку это равноправная зависимость react-redux и , она появляется в node_modules/redux/index (в папке проекта), так как равноправные зависимости должны быть установлены, чтобы использовать соответствующие пакет.

"peerDependencies": {
    "react": "^16.8.3",
    "redux": "^2.0.0 || ^3.0.0 || ^4.0.0-0"
}
...