#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 может привести к неправильному разрешению модуля?