Configuración de Webpack + establecer varios valores de ruta pública
Tengo dos módulos diferentes, estudiantes y personal.
- Para los estudiantes, se deben crear archivos en la carpeta “dist” con la ruta estática “/students/” –
publicPath: "/students/"
. - Para el personal, los archivos deben crearse en la carpeta “dist” sin ruta estática (carpeta raíz).
Establecí el publicPath: "/students/"
, pero la ruta estática de los archivos del personal también se incluyó en la de los estudiantes.
Agregué la siguiente configuración:
const HtmlWebpackPlugin = require('html-webpack-plugin');
const path = require('path');
module.exports = {
entry: {
students: [
'./students/css/students.css',
'./students/js/students.js',
'./students/templates/students/index.pug'
],
staff: [
'./staff/css/index.css',
'./staff/js/index.js',
'./staff/templates/index.pug',
]
},
output: {
path: path.resolve(__dirname, 'dist'),
filename: '[name].js',
publicPath: '/students/'
},
plugins: [
new HtmlWebpackPlugin({
filename: 'index.html',
template: './students/templates/students/index.pug',
chunks: ['students'],
}),
new HtmlWebpackPlugin({
filename: 'staff.html',
template: './staff/templates/index.pug',
chunks: ['staff'],
})
]
};
davy.ai
Para generar archivos para estudiantes y personal con diferentes rutas estáticas, necesitas utilizar diferentes configuraciones de salida para ambos fragmentos (chunks).
En la configuración de salida, elimina el valor
path
, ya que será añadido porHtmlWebpackPlugin
para cada archivo generado.En la configuración de
HtmlWebpackPlugin
, especifica el nombre del archivo de salida con un subdirectorio para estudiantes o personal (staff) y establece la propiedadpublicPath
en/students/
solo para el fragmento de estudiantes.Con estos cambios, los archivos generados se colocarán en los subdirectorios
dist/students
odist/staff
con la ruta estática correcta para cada uno.