#javascript #webpack #migration #webpack-dev-server
#javascript #webpack #миграция #webpack-dev-server
Вопрос:
После обновления webpack-dev-server
с версии v3 до версии 4 я обнаружил два странных несоответствия.
- webpack-dev-server
publicPath
больше не работает, без сопряжения его с новой статической опцией.- В прошлом этого было достаточно, чтобы все заработало:
{ // ... devServer: { publicPath: '/' } }
- Но теперь это требуется вместо:
{ // ... devServer: { devMiddleware: { publicPath: '/' }, static: [ { directory: context.replace(///g, '\'), publicPath: '/' } ] } }
- Вторая проблема также видна в приведенном выше коде. В новой версии выше вы можете видеть, что у my
context
есть странный хак: я должен заменить прямые косые черты обратными косыми чертами в Windows —context.replace(///g, '\')
. Если я этого не сделаю, я буду наказан неточнымURL
алгоритмом обнаружения. Поскольку прямые косые черты отлично работают в Windows, не следует жаловаться на то, что это не каталог. Все собственные инструменты Windows считают, что это каталог, ноwebpack-dev-server
не:Error: Using a URL as static.directory is not supported at getStaticItem (c:thecodenode_moduleswebpack-dev-serverlibServer.js:557:15) at c:thecodenode_moduleswebpack-dev-serverlibServer.js:1046:16 at Array.map (<anonymous>) at Server.normalizeOptions (c:thecodenode_moduleswebpack-dev-serverlibServer.js:1041:39) at Server.start (c:thecodenode_moduleswebpack-dev-serverlibServer.js:2252:16) at Command.<anonymous> (c:thecodenode_modules@webpack-cliservelibindex.js:242:38) at async Promise.all (index 1) at async Command.<anonymous> (c:thecodenode_moduleswebpack-clilibwebpack-cli.js:1672:7)
Моя настройка:
webpack: 5
OS: Windows 10
Node: 16
Я что-то делаю не так? Это документированное / ожидаемое поведение? Или это то, что я должен подать на их странице проблем Github?
Обходной путь для (2): проблема с URL-адресом может быть устранена с помощью path.resolve
. т.е.: . directory: path.resolve(context)