Мы используем форк Create-React-App в нашей компании и проект, похожий на «response-scripts» (и основанный на нем).
В нашем эквиваленте response-scripts у нас есть пакет.json с множеством зависимостей.Этих двух будет достаточно для этого примера:
"A": "2.0.0-rc.5",
"B": "^0.5.0",
В моем проекте, в котором в качестве зависимости есть эти «реакции-скрипты», я запускаю «npm install».Тем не менее, результат:
Это разрушает наши сценарии реакции.Я могу добавить пару псевдонимов в мой webpack.config.js, чтобы «помочь» Webpack узнать, где найти эти пакеты, но возникает новая ошибка: зависимости B установлены в root / node_modules, хотя сам пакет не является.
Это означает, например, что, когда B хочет использовать свою зависимость "autosize", он попытается разрешить ее из своих './node_modules, но не получится, поскольку этот пакет был установлен в соответствии с проектом.root node_modules.
Я могу вспомнить сценарий postinstall, который перемещает наши пакеты в корневую папку node_modules, но это похоже на сокрытие грязи под ковром и неизбежное разрушение в будущем.
Добавление псевдонимов в webpack.config.js не помогает, так как зависимости этих зависимостей устанавливаются в корневой каталог node_modules проекта, а сама зависимость - нет, поэтому разрешение относительных зависимостей просто не работает.
Я хочу избежать этого в нашем webpack.config.js, а также в пост-установках в нашей паckage.json.
alias: {
'@ether/uiverse-widgets': path.resolve(
'./node_modules/@ether/ether-scripts/node_modules/@ether/uiverse-widgets'
),
'@ether/uiverse-core': path.resolve(
'./node_modules/@ether/ether-scripts/node_modules/@ether/uiverse-core'
),
},
tl; dr: моя зависимость A зависит от B и C. Он устанавливает B под ./node_modules, но C под ./node_modules/A/node_modules.