Hola, les comparto una forma alternativa CopyWebpackPlugin y poder importar nuestros estilos al javascript en vez de al html, y se vea de esta forma
index.js
import router from './routes/index’import ‘./styles/styles.css’ //Esto es lo que queremos lograrwindow.addEventListener(‘load’, router)
window.addEventListener(‘hashchange’, router)
lo primero que ocupamos hacer es, en vez de instalar copy webpack plugin instalar MiniCssExtractPlugin y css loader. Este es el comando para instalarlos:
npm i mini-css-extract-plugin css-loader -D
teniendo eso, en el archivo de webpack.config.js importaremos el plugin asi:
const MiniCssExtractPlugin = require(‘mini-css-extract-plugin’)
despues agregaremos una nueva regla
{
test: /\.css$/i,
use: [MiniCssExtractPlugin.loader, 'css-loader'],
},
y agregaremos a la parte de plugins esto:
newMiniCssExtractPlugin({ filename: ‘assets/[name].css’ })
el archivo final de webpack.config.js quedo asi
const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
/** @type {import('webpack').Configuration} */module.exports = {
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'main.js',
},
resolve: {
extensions: ['.js'],
},
module: {
rules: [
{
test: /\.js?$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
},
},
{
test: /\.css$/i,
use: [MiniCssExtractPlugin.loader, 'css-loader'],
},
],
},
plugins: [
new HtmlWebpackPlugin({
inject: true,
template: './public/index.html',
filename: './index.html',
}),
new MiniCssExtractPlugin({ filename: 'assets/[name].css' }),
],
}
y listo, ya podemos importar nuestros estilos desde el javascript
Todo esto lo aprendi en el curso de webpack
Excelente tu aporte, no desacredito al “Oscar”, pero si hay que actualizar el curso.
Gracias!