You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Webpack中为WordPress插件配置不同JS输出目录?

Webpack打包输出到WordPress插件对应目录的配置方案

问题场景

你的WordPress插件目录结构如下:

/public/
  /js/
    /modules/
    /public.bundled.js // 目标输出位置
/admin/
  /js/
    /modules/
    /admin.bundled.js // 目标输出位置

你需要将Webpack打包后的文件分别输出到对应目录,现有配置中output.path不知道如何设置:

const path = require("path");
module.exports = {
  entry: {
    public: __dirname + "/public/js/modules/public.js",
    admin: __dirname + "/admin/js/modules/admin.js",
  },
  output: {
    filename: "[name].bundled.js",
    path: // 待配置
  },
  mode: "development",
  watch: true,
};

解决方案

要实现不同入口文件输出到对应目录,不需要给path设置多个路径,而是通过动态文件名配置来指定输出的相对路径,具体修改如下:

const path = require("path");
module.exports = {
  entry: {
    // 推荐用path.resolve替代字符串拼接,适配不同系统路径分隔符
    public: path.resolve(__dirname, "public/js/modules/public.js"),
    admin: path.resolve(__dirname, "admin/js/modules/admin.js"),
  },
  output: {
    // 利用[name]动态匹配入口名,拼接目标目录路径
    filename: "[name]/js/[name].bundled.js",
    // 输出根目录设为项目根目录
    path: __dirname,
    // 禁用自动清理,避免误删原有目录下的其他文件
    clean: false,
  },
  mode: "development",
  watch: true,
};

原理说明

  • filename中的[name]会自动替换为你在entry中定义的键名(public或admin),因此最终输出路径会自动拼接为:
    • public入口:/public/js/public.bundled.js
    • admin入口:/admin/js/admin.bundled.js
  • 使用path.resolve可以避免因Windows和Unix系统路径分隔符不同导致的错误,比直接字符串拼接更可靠。

内容的提问来源于stack exchange,提问作者Sackadelic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 13:41:12