Каков правильный способ установки другой <base> для dev/staging/production
<base href="">
для dev и производства разные (для производства это вложенная папка). Каков хороший способ построить другую базу с помощью webpack?
Ответы
Ответ 1
Лучшее, что я нашел до сих пор, это поместить это свойство в config (опция HtmlWebpackPlugin):
new HtmlWebpackPlugin({
...
baseUrl: process.env.NODE_ENV == 'development'?'/':'/app/'
})
а затем вывести его в index.html:
<base href="<%= htmlWebpackPlugin.options.baseUrl %>" />
Ответ 2
Если у вас есть опция template
, установленная в файл HTML, то версия 2.x плагина не будет выполнять никакой замены.
В этом случае вам нужно будет изменить @stever ответ следующим образом:
new HtmlWebpackPlugin({
...
template: './src/index.ejs',
baseUrl: process.env.NODE_ENV == 'development'?'/':'/app/'
})
и переименуйте файл index.html
в index.ejs
Ответ 3
Если вы используете webpack, вам обязательно нужно установить output.publicPath
на то же значение.
См. HtmlWebpackPlugin вводит файлы относительного пути, которые ломаются при загрузке корневых веб-сайтов