在WebPack中操纵文件内容



我想以下面的方式自由操纵文件内容。最好的解决方案是什么?这次我正在使用JSON,但我希望能够使用任何字符串内容来执行此操作。但是,如果有特定于JSON的方式,请还包括。

...
{
  use: '...content-loader',
  test: /messages.json$/,
  function: (data) => {
    const object = JSON.parse(data)
    for(let key in object){
      object[key] = myFunction(key, object[key])
    }
    return JSON.stringify(object)
  }
},
...

这应该真的很容易,但是搜索正在将许多不同的解决方案返回到无关的答案中。

我自己最终要制作一个装载机。下面的示例:

// content-loader
const { getOptions } = require('loader-utils')
function loader (source) {
  const options = getOptions(this)
  const response = options.function(source)
  return response
}
module.exports = loader
// webpack.config.js rule in module.rules
{
  test: /messages.json$/,
  loaders: [
    {
      loader: 'content-loader',
      options: {
        function: (data) => {
          const object = JSON.parse(data)
          for(let key in object){
            object[key] = myFunction(key, object[key])
          }
          return JSON.stringify(object)
        }
      }
    }
]}

最新更新