В Windows webpack4 устраняет неправильный модуль, когда буква диска cwd является строчной буквой?

#reactjs #webpack-4 #drive-letter

Вопрос:

Я реализовывал проект react и получил ошибку во время запуска «npm run build» программно с расширением vscode.

Сообщение об ошибке выглядит так

 ./node_modules/@azure/core-rest-pipeline/dist-esm/src/policies/tracingPolicy.js
Attempted import error: 'isSpanContextValid' is not exported from '@azure/core-tracing'.
 

Затем я обнаружил, что в моем файле package-lock.json у нас есть мультиверсия «@azure/core-трассировка», потому что библиотека вложена в зависимости от нескольких deps. Поэтому я предполагаю, что webpack(версия 4.44.2) нашел неправильную версию модуля при устранении зависимостей для «@azure/основной-rest-конвейер»

Однако, когда я запустил «npm run build» из терминала, он не потерпел неудачу. Поэтому позже я сравнил env двух процессов и обнаружил, что процесс, cwd запущенный с расширением vscode, имеет строчную букву диска, т. Е. "c:\xxxxx" . Но тот, который запускается из терминала, имеет cwd заглавную букву диска, т. Е. "C:\xxxxx" Поэтому я изменил свой код в расширении vscode, чтобы буква диска стала прописной, а затем ошибка исчезла.

Чтобы подтвердить основную причину сбоя. Я попытался найти много старых связанных проблем, но ни одна из них не соответствует этому поведению. Мне также немного сложно понять это, прочитав исходный код webpack.

Может ли кто-нибудь помочь мне понять причину неудачи? Почему буква диска Windows может привести к неправильному разрешению модуля?