2023-01-11 webpack 在package.json中type="module"模式下的配置

// 主要是__dirname, __filename字段的獲取
import path, { dirname } from 'node:path';
import { fileURLToPath } from 'url';

const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);

import HtmlWebpackPlugin from 'html-webpack-plugin';

export default {
  target: "web",
  entry: "./src/index.js",
  output: {
    path: path.join(__dirname, "/dist"),
    publicPath: "/",
    filename: "index.js",
  },
  resolve: {
    extensions: [".ts", ".tsx", ".json", ".js"],
  },
  module: {
    rules: [],
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: path.join(__dirname, "/public/index.html"),
      scriptLoading: "blocking",
      inject: "head",
    }),
  ],
  devServer: {
    static: {
      // https://webpack.docschina.org/configuration/dev-server/#directory
      // 告訴服務(wù)器從哪里提供內(nèi)容。只有在你希望提供靜態(tài)文件時才需要這樣做。static.publicPath 將會被用來決定應該從哪里提供 bundle,并具有優(yōu)先級。
      directory: path.join(__dirname, "public"),
      // 告訴服務(wù)器在哪個 URL 上提供 static.directory 的內(nèi)容。 (靜態(tài)資源)
      // 配置了下面的內(nèi)容的話, 可以訪問: http://localhost:8080/dist/webpack.html  拿到的會是沒有注入代碼的原生靜態(tài)代碼
      publicPath: "/dist",
    },
    hot: true,
    port: "8080",
    open: true,
    proxy: {
      "/api": {
        target: "",
        changeOrigin: true,
        pathRewrite: {
          "^/api": "",
        },
      },
    },
  },
};

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容