es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Webpack – Cómo construir la carpeta “dist” fuera del directorio de configuración actual de Webpack.

Este es mi directorio de proyecto actual:

src
  -App.jsx
  -...
webpack
  -webpack.base.js
  -webpack.prod.js

package.json

"scripts": {
  "build": "webpack --config ./webpack/webpack.prod.js",
}

Cuando ejecuto npm run build, se crea la carpeta dist dentro de mi directorio de webpack:

src
  -App.jsx
  -...
webpack
  -dist
  -webpack.base.js
  -webpack.prod.js

Lo que quiero es:

dist
src
  -App.jsx
  -...
webpack
  -webpack.base.js
  -webpack.prod.js

Este es mi archivo de configuración de webpack:

webpack.base.js

const webpack = require("webpack");
const HtmlWebpackPlugin = require("html-webpack-plugin");

module.exports = {
  entry: "./src/index.jsx",
  resolve: {
    extensions: ["*", ".js", ".jsx"],
    fallback: {...},
  },
  module: {
    rules: [...],
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: "public/index.html",
      filename: "index.html",
      favicon: "public/favicon.ico",
    }),
    new webpack.ProvidePlugin({
      Buffer: ["buffer", "Buffer"],
    }),
    new webpack.ProvidePlugin({
      process: "process/browser",
    }),
  ],
};

webpack.prod.js

const { merge } = require("webpack-merge");
const base = require("./webpack.base");
const path = require("path");
const Dotenv = require("dotenv-webpack");

module.exports = merge(base, {
  mode: "production",
  devtool: "inline-source-map", //Solo para desarrollo
  output: {
    path: path.join(__dirname, "/dist"),
    filename: "bundle.js",
  },
  plugins: [
    new Dotenv({ path: "./.env.production" }),
  ],
});
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para cambiar el directorio de salida de la compilación webpack.prod.js, puede modificar la propiedad output.path en el archivo webpack.prod.js. Actualmente está configurado en path.join (__ dirname, "/dist"), lo que crea la carpeta dist dentro del directorio webpack.

    Para cambiar esto, puede modificar la propiedad output.path a la ruta del directorio de salida deseado. Por ejemplo, para generar una carpeta dist en el directorio raíz del proyecto, podría modificar la propiedad output.path a path.join (__ dirname, "../dist"). Esto creará la carpeta dist en el directorio raíz del proyecto.

    const { merge } = require("webpack-merge");
    const base = require("./webpack.base");
    const path = require("path");
    
    const Dotenv = require("dotenv-webpack");
    
    module.exports = merge(base, {
      mode: "production",
      devtool: "inline-source-map", //Solo para desarrollo
      output: {
        path: path.join(__dirname, "../dist"),
        filename: "bundle.js",
      },
      plugins: [
        new Dotenv({ path: "./.env.production" }),
      ],
    });
    

    Una vez que haya realizado este cambio, ejecutar npm run build creará la carpeta dist en el directorio raíz del proyecto.

Comments are closed.