title: Webpack + eslint replace source change on linting
body: <p>Running on webpack dev server with a string replacement plugin that does a replacement based <a href="https://github.com/jamesandersen/string-replace-webpack-plugin/blob/master/loader.js#L19" rel="nofollow">on a function</a>. I am finding the value of the replacement overwritten my source file .</p>
  
  <p>My Dev server configuration is this:</p>
  
  <pre><code>const devServer = (options) =&gt; {
    return {
      devServer: {
        hot: true,
        inline: true,
        stats: 'errors-only',
        host: options.host,
        port: options.port,
        historyApiFallback: true
      },
      plugins: [
        new webpack.HotModuleReplacementPlugin({
          multiStep: true
        })
      ]
    }
  }
  </code></pre>
  
  <p>The string replacement plugin configuration is:</p>
  
  <pre><code>  const constants = (data) =&gt; {
      return {
        module: {
          loaders: [
            {
              test: /\.jsx?$/,
              loader: StringReplacePlugin.replace({
                replacements:[
                  {
                    pattern:/\`CONSTANT_(.*)\`/g,
                    replacement:(match,p1,offset,string)=&gt;{
                      console.log('MATCH '+p1)
                      const keys = p1.split('.')
                      let current = data
                      keys.forEach((key)=&gt;{
                        current = current[key]
                      })
                      console.log('Replacing '+p1+' with '+current)
                      return `'${current}'`
                    }
                  }
                ]
              })
            }
          ]
        },
        plugins: [
          new StringReplacePlugin()
        ]
      }
    }
  </code></pre>
  
  <p>The entry/ouptut values are:</p>
  
  <pre><code>const base = {
    entry: {
      app: path.resolve(PATHS.app, './index.jsx')
    },
    output: {
      path: PATHS.build,
      filename: 'app.js',
      publicPath: '/'
    },
    resolve: {
      extensions: ['', '.js', '.jsx', '.json']
    }
  }
  </code></pre>
  
  <p>Is there any reason why webpack dev server would be changing files on source?</p>
  
  <p><strong>EDIT: 1</strong> Added JS part:</p>
  
  <pre><code>const js = (paths) =&gt; {
    const cacheDir = (process.env.CACHE_DIRECTORY ? process.env.CACHE_DIRECTORY : 'true')
    return {
  
      module: {
        loaders: [
          {
            test: /\.jsx?$/,
            exclude: /(node_modules|bower_components)/,
            loaders: [
              `babel?cacheDirectory=${cacheDir}`, // presets on .babelrc
              'eslint-loader?fix'
            ],
            include: paths
          }
        ]
      }
    }
  }
  </code></pre>
  
  <p><strong>Edit 2</strong> The cause seesm to be the eslint-loader?fix, when removed the appropriate behaviour is achieved. Now I am seeking how to prevent that</p>