Как отключить или избежать предупреждений в веб-пакете о буквах разных дисков при сборке из VSCode? - PullRequest
1 голос
/ 21 июня 2019

У меня есть проект, созданный с помощью веб-пакета, и я использую VS Code для его редактирования. Всякий раз, когда я собираю проект из ВНЕ кода VS, сборка веб-пакета завершается без каких-либо предупреждений. Однако, когда я строю из кода WITHIN VS (например, с помощью команды сборки в tasks.json или из приглашения PowerShell изнутри кода VS), я получаю много предупреждений веб-пакетов, которые выглядят следующим образом:

WARNING in (webpack)/buildin/module.js
There are multiple modules with names that only differ in casing.
This can lead to unexpected behavior when compiling on a filesystem with other case-semantic.
Use equal casing. Compare these module identifiers:
* D:\Users\<name>\Source\Repos\<name>\<name>\node_modules\source-map-loader\index.js!D:\Users\<name>\Source\Repos\<name>\<name>\node_modules\webpack\buildin\module.js
Used by 2 module(s), i. e.
....
* D:\Users\<name>\Source\Repos\<name>\<name>\node_modules\source-map-loader\index.js!d:\Users\<name>\Source\Repos\<name>\<name>\node_modules\webpack\buildin\module.js
Used by 1 module(s), i. e.
....

Вы можете заметить, что они различаются только в регистре букв диска (D против d). Вот что я собрал об этой проблеме:

  1. Когда я запускаю приглашение cmd, буква d в ​​нижнем регистре, и webpack не жалуется.
  2. Если я запускаю с кодом VS, webpack жалуется, потому что VS Code намеренно вводит букву диска в переменную $ {workspaceRoot} и в других местах. Вы можете найти множество ссылок на исправления и проблемы, связанные с этим поведением, в этом выпуске темы.
  3. Было много дискуссий о том, что у webpack также возникли проблемы со случаями, когда буква диска была по-разному прописана. Одним из примеров является здесь . Есть и другие места, где об этом говорят, и как у NodeJ также возникают такие проблемы.

Проблема в том, что я не знаю, как исправить ситуацию. Кажется, я не могу изменить то, что VS Code делает с буквами дисков. Я не нашел каких-либо недавних проблем в веб-пакете об этой проблеме (ссылка, которую я разместил выше, с 2017 года). Насколько я могу судить, нет никакого способа сказать вебпаку о подавлении этого конкретного предупреждения (с ним даже не связан номер предупреждения).

Как лучше всего решить эту проблему сейчас?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 18 июля 2019

Я на машине с Windows, и у меня тоже есть эта проблема.Webpack предупреждает о несоответствиях в заглавных буквах пути.Это проблема кода VS, при которой, когда терминал вызывается программно, код VS использует букву диска в нижнем регистре.Для меня не имеет значения, какой терминал, это всегда будет строчный c :.Чтобы исправить это, я добавил команду bash в мои скрипты npm для веб-пакетов, чтобы прописная буква диска была выполнена перед выполнением основной команды.Он ищет вхождения /c/ и заменяет их на /C/.Обратите внимание, что это относится к Bash.Это Windows CMD эквивалент, но я не разместил его здесь.Команда bash для прописного пути:

wd=`pwd`;cd ${wd/\/c\//\/C\/}

Теперь, чтобы запустить его в вашем скрипте npm, необходимо изменить команду, чтобы учесть двойные кавычки и экранирование,В ваших сценариях npm это должно выглядеть так:

"watch": "wd=`pwd`;cd \"${wd/c/C}\" && webpack --config ./webpack.dev.config.js",

или

"build": "wd=${pwd};cd \"${wd/c/C}\" && webpack --config ./webpack.prod.config.js "

Затем, когда вы запустите npm run watchили npm run build он прописывает путь для вас, а затем переходит к веб-пакету.

Обратите внимание, что это не решит никаких проблем с допустимой капитализацией, которые могут у вас возникнуть.Вам все равно придется проверять свой код вручную.

0 голосов
/ 25 июня 2019

Я обнаружил, что переключение на оболочку bash в VSCode устранило эту проблему для меня.

См. Это изображение, где доступна опция «Выбор оболочки по умолчанию»:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...