Я хотел создать простую среду разработки для моего реагирующего приложения. Я использую webpack-dev-server
и html-webpack-plugin
. Я понимаю, что webpack-dev-server
не записывает файлы, а только обслуживает их из памяти. Когда выходные файлы находятся в том же каталоге, он работает безупречно, но вот проблема, я хотел, чтобы активы были в папке /dist
, а не в корневой папке /
, где находится сгенерированный index.html
.
Вот наглядное представление о том, чего я пытаюсь достичь:
- public
- dist
* app.js
* index.html
- webpack
* dev.config.js
Вот мой конфиг для того же режима каталога:
// webpack/dev.config.js
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const CleanWebpackPlugin = require('clean-webpack-plugin');
const assetsPath = path.resolve(__dirname, '../public');
module.exports = {
mode: 'development',
entry: {
app: './src/index.js'
},
devtool: 'inline-source-map',
devServer: {
contentBase: assetsPath
},
plugins: [
new CleanWebpackPlugin(),
new HtmlWebpackPlugin()
],
output: {
path: assetsPath,
filename: '[name]-[hash].js',
publicPath: '/'
}
};
А вот моя попытка для другого режима каталога:
// webpack/dev.config.js
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const CleanWebpackPlugin = require('clean-webpack-plugin');
const assetsPath = path.resolve(__dirname, '../public/dist');
const publicPath = path.resolve(__dirname, '../public');
module.exports = {
mode: 'development',
entry: {
app: './src/index.js'
},
output: {
path: assetsPath,
filename: '[name]-[hash].js',
publicPath: '/dist'
},
devtool: 'inline-source-map',
devServer: {
contentBase: publicPath,
publicPath: '/dist'
},
plugins: [
new CleanWebpackPlugin(),
new HtmlWebpackPlugin({
filename: '../index.html'
})
]
};
Моя попытка конфигурирования действительна, она открывает новую вкладку браузера, но не с ожидаемым содержимым. Он показывает только список каталогов папки ./public
с ./public/dist
, которая пуста и ожидаема, поскольку сервер разработки не записывает никаких файлов.
Кто-нибудь знает, как я могу решить это?