Webpack 自定义网页包替换,如[name]、[id]、[hash],但我想构建自己的替换

Webpack 自定义网页包替换,如[name]、[id]、[hash],但我想构建自己的替换,webpack,webpack-2,Webpack,Webpack 2,具体来说,我想构建标记[camelCaseName],该标记将文件名(在snake case中)转换为camel case 但我似乎找不到任何关于如何构建自己的自定义替换的指导。我想知道是否有人在这方面有一些资源或例子 谢谢。我想我已经从处理[name]()的代码中找到了答案 我们可以编写一个连接到资产路径的插件 const replacePathVariables = (path, data) => { const REGEXP_CAMEL_CASE_NAME = /\[camelc

具体来说,我想构建标记
[camelCaseName]
,该标记将文件名(在snake case中)转换为camel case

但我似乎找不到任何关于如何构建自己的自定义替换的指导。我想知道是否有人在这方面有一些资源或例子


谢谢。

我想我已经从处理
[name]
()的代码中找到了答案

我们可以编写一个连接到
资产路径的插件

const replacePathVariables = (path, data) => {
  const REGEXP_CAMEL_CASE_NAME = /\[camelcasename\]/gi;
    if (typeof path === "function") {
        path = path(data);
    }

  if (data && data.chunk && data.chunk.name) {
    return path.replace(
      REGEXP_CAMEL_CASE_NAME,
      data.chunk.name
        .replace(/(\-\w)/g, (matches) => { return matches[1].toUpperCase(); })
        .replace(/(^\w)/, (matches) => { return matches[0].toUpperCase(); })
    );
  } else {
    return path;
  }

};

class ExtraTemplatedPathPlugin {
    apply(compiler) {
    compiler.plugin("compilation", function(compilation) {
            const mainTemplate = compilation.mainTemplate;
            mainTemplate.plugin('asset-path', replacePathVariables);
        });
    }
}
上述代码支持替换
[camelcasename]